import * as core from "@terrascript/core";
export interface LambdaConflictHandlerConfigArgs extends core.SchemaArgs {
    lambdaConflictHandlerArn?: string | core.StringOut;
}
export declare class LambdaConflictHandlerConfig extends core.Schema<LambdaConflictHandlerConfigArgs> {
    lambdaConflictHandlerArn?: string | core.StringOut;
}
export interface SyncConfigArgs extends core.SchemaArgs {
    conflictDetection?: string | core.StringOut;
    conflictHandler?: string | core.StringOut;
    lambdaConflictHandlerConfig?: LambdaConflictHandlerConfig;
}
export declare class SyncConfig extends core.Schema<SyncConfigArgs> {
    conflictDetection?: string | core.StringOut;
    conflictHandler?: string | core.StringOut;
    lambdaConflictHandlerConfig?: LambdaConflictHandlerConfig;
}
export interface FunctionArgs extends core.ResourceArgs {
    apiId: string | core.StringOut;
    dataSource: string | core.StringOut;
    description?: string | core.StringOut;
    functionVersion?: string | core.StringOut;
    maxBatchSize?: number | core.NumberOut;
    name: string | core.StringOut;
    requestMappingTemplate: string | core.StringOut;
    responseMappingTemplate: string | core.StringOut;
    syncConfig?: SyncConfig;
}
export declare class Function extends core.Resource<FunctionArgs> {
    apiId: string | core.StringOut;
    arn: string | core.StringOut;
    dataSource: string | core.StringOut;
    description?: string | core.StringOut;
    functionId: string | core.StringOut;
    functionVersion?: string | core.StringOut;
    id: string | core.StringOut;
    maxBatchSize?: number | core.NumberOut;
    name: string | core.StringOut;
    requestMappingTemplate: string | core.StringOut;
    responseMappingTemplate: string | core.StringOut;
    syncConfig?: SyncConfig;
    constructor(name: string, args?: FunctionArgs);
    getNamespace(): string;
}
//# sourceMappingURL=function.d.ts.map