/// <reference types="node" />
import { Folder } from './Folder';
import { CoreEventHandler, EventConfiguration, Options, Reshuffle } from './CoreConnector';
import { AWS, BaseAWSConnector } from './BaseAWSConnector';
export { Folder };
interface EventOptions {
    type: string;
}
interface Payload {
    code?: string;
    filename?: string;
    buffer?: Buffer;
}
export declare class AWSLambdaConnector extends BaseAWSConnector {
    private lambda;
    constructor(app: Reshuffle, options: Options, id?: string);
    on(options: EventOptions, handler: CoreEventHandler, eventId?: string): EventConfiguration;
    command(functionName: string, executable: string, command: string, files?: string | string[], options?: Options): Promise<any>;
    private commandCreateFunction;
    create(functionName: string, payload: Payload, options?: Options): Promise<any>;
    private makeBuffer;
    createFromBuffer(functionName: string, buffer: Buffer, options?: Options): Promise<any>;
    createFromCode(functionName: string, code: string, options?: Options): Promise<any>;
    createFromFile(functionName: string, filename: string, options?: Options): Promise<any>;
    createInFolder(functionName: string, folderHandler: (folder: Folder) => Promise<void>, options?: Options): Promise<any>;
    delete(functionName: string): Promise<void>;
    enqueue(functionName: string, payload: any | any[], maxConcurrent?: number): Promise<string>;
    private onQueueReady;
    getFunctionInfo(functionName: string): Promise<any>;
    invoke(functionName: string, payload: any): Promise<any>;
    private parseResponse;
    private validateFunctionName;
    listFunctions(): Promise<any>;
    updateCode(functionName: string, payload: Payload): Promise<any>;
    updateCodeFromBuffer(functionName: string, buffer: Buffer): Promise<any>;
    updateCodeFromCode(functionName: string, code: string): Promise<any>;
    updateCodeFromFile(functionName: string, filename: string): Promise<any>;
    updateCodeInFolder(functionName: string, folderHandler: (folder: Folder) => Promise<void>): Promise<any>;
    private inFolder;
    sdk(options?: Record<string, any>): AWS.Lambda;
}
