import { type BlueprintBaseFunctionResource, type BlueprintDocumentFunctionResource, type BlueprintDocumentFunctionResourceEvent, type BlueprintMediaLibraryAssetFunctionResource, type BlueprintMediaLibraryFunctionResourceEvent, type BlueprintScheduleFunctionResource, type BlueprintScheduleFunctionResourceEvent } from '../index.js';
interface RequiredFunctionProperties {
    name: string;
}
/**
 * Defines a function that is triggered by document events in Sanity datasets.
 * ```
 * defineDocumentFunction({
 *   name: 'my-document-function',
 *   src: 'functions/my-function',
 *   memory: 3,
 *   timeout: 300,
 *   event: {
 *     on: ['create', 'update'],
 *     filter: "_type == 'some-type'",
 *     projection: "{title, _id, _type}",
 *     includeDrafts: false,
 *   },
 *   env: {
 *     MY_ENV_VAR: 'custom-value',
 *   },
 * })
 * ```
 * @param functionConfig The configuration for the document function
 * @returns The validated document function resource
 */
export declare function defineDocumentFunction(functionConfig: Partial<BlueprintDocumentFunctionResource> & RequiredFunctionProperties): BlueprintDocumentFunctionResource;
/** @deprecated Define event properties under the 'event' key instead of specifying them at the top level */
export declare function defineDocumentFunction(functionConfig: Partial<BlueprintDocumentFunctionResource> & RequiredFunctionProperties & Partial<BlueprintDocumentFunctionResourceEvent>): BlueprintDocumentFunctionResource;
/**
 * Defines a function that is triggered by media library events.
 * ```
 * defineMediaLibraryAssetFunction({
 *   name: 'my-media-library-function',
 *   src: 'functions/media-library-function',
 *   event: {
 *     on: ['create', 'update'],
 *     resource: {
 *       type: 'media-library',
 *       id: 'my-media-library-id',
 *     },
 *     filter: "type == 'my-type'",
 *     projection: "{_id}",
 *   },
 *   env: {
 *     MY_ENV_VAR: 'custom-value',
 *   },
 * })
 * ```
 * @param functionConfig The configuration for the media library asset function
 * @returns The validated media library asset function resource
 */
export declare function defineMediaLibraryAssetFunction(functionConfig: Partial<BlueprintMediaLibraryAssetFunctionResource> & RequiredFunctionProperties & Pick<BlueprintMediaLibraryAssetFunctionResource, 'event'> & Partial<BlueprintMediaLibraryFunctionResourceEvent>): BlueprintMediaLibraryAssetFunctionResource;
/**
 * Defines a function that is triggered on a schedule.
 * ```
 * defineScheduleFunction({
 *   name: 'my-schedule-function',
 *   src: 'functions/schedule-function',
 *   memory: 3,
 *   timeout: 300,
 *   event: {
 *     minute: "0",
 *     hour: "0",
 *     dayOfMonth: "*",
 *     month: "*",
 *     dayOfWeek: "*",
 *   },
 * })
 * ```
 * @beta
 * @param functionConfig The configuration for the document function
 * @returns The validated schedule function resource
 */
export declare function defineScheduleFunction(functionConfig: Partial<BlueprintScheduleFunctionResource> & RequiredFunctionProperties & Pick<BlueprintScheduleFunctionResource, 'event'> & Partial<BlueprintScheduleFunctionResourceEvent>): BlueprintScheduleFunctionResource;
/**
 * Defines a base function resource with common properties.
 * ```
 * defineFunction({
 *   name: 'my-function',
 *   src: 'functions/my-function',
 *   timeout: 300,
 *   memory: 1,
 *   env: {
 *     MY_ENV_VAR: 'my-custom-value'
 *   },
 * })
 * ```
 * @param functionConfig The configuration for the function
 * @param options Optional configuration including validation options
 * @returns The validated function resource
 */
export declare function defineFunction(functionConfig: Partial<BlueprintBaseFunctionResource> & RequiredFunctionProperties, options?: {
    skipValidation?: boolean;
}): BlueprintBaseFunctionResource;
export {};
