import { OystehrClientRequest, ZambdaCreateParams, ZambdaCreateResponse, ZambdaDeleteParams, ZambdaExecuteParams, ZambdaExecutePublicParams, ZambdaExecutePublicResponse, ZambdaExecuteResponse, ZambdaGetParams, ZambdaGetResponse, ZambdaListResponse, ZambdaS3UploadParams, ZambdaS3UploadResponse, ZambdaUpdateParams, ZambdaUpdateResponse } from '../..';
import { SDKResource } from '../../client/client';
import { OystehrConfig } from '../../config';
import * as ext from './zambda-ext';
export declare class Zambda extends SDKResource {
    #private;
    constructor(config: OystehrConfig);
    uploadFile: typeof ext.uploadFile;
    /**
     * Get a list of all Zambda Functions in the Project. [Zambdas](https://docs.oystehr.com/oystehr/services/zambda/) are functions that can be used to execute your code. They can be used to process data received from Oystehr's APIs or to perform operations on third-party services.
     *
     * Access Policy Action: `Zambda:ListAllFunctions`
     * Access Policy Resource: `Zambda:Function`
     */
    list(request?: OystehrClientRequest): Promise<ZambdaListResponse>;
    /**
     * Create a new Zambda Function. [Zambdas](https://docs.oystehr.com/oystehr/services/zambda/) are functions that can be used to execute your code. They can be used to process data received from Oystehr's APIs or to perform operations on third-party services.
     *
     * Access Policy Action: `Zambda:CreateFunction`
     * Access Policy Resource: `Zambda:Function`
     */
    create(params: ZambdaCreateParams, request?: OystehrClientRequest): Promise<ZambdaCreateResponse>;
    /**
     * Get the Zambda Function with the provided ID or name. [Zambdas](https://docs.oystehr.com/oystehr/services/zambda/) are functions that can be used to execute your code. They can be used to process data received from Oystehr's APIs or to perform operations on third-party services.
     *
     * Access Policy Action: `Zambda:GetFunction`
     * Access Policy Resource: `Zambda:Function`
     */
    get(params: ZambdaGetParams, request?: OystehrClientRequest): Promise<ZambdaGetResponse>;
    /**
     * Update the Zambda Function with the provided ID or name. [Zambdas](https://docs.oystehr.com/oystehr/services/zambda/) are functions that can be used to execute your code. They can be used to process data received from Oystehr's APIs or to perform operations on third-party services.
     *
     * Access Policy Action: `Zambda:UpdateFunction`
     * Access Policy Resource: `Zambda:Function`
     */
    update(params: ZambdaUpdateParams, request?: OystehrClientRequest): Promise<ZambdaUpdateResponse>;
    /**
     * Delete the Zambda Function with the provided ID or name. [Zambdas](https://docs.oystehr.com/oystehr/services/zambda/) are functions that can be used to execute your code. They can be used to process data received from Oystehr's APIs or to perform operations on third-party services.
     *
     * Access Policy Action: `Zambda:DeleteFunction`
     * Access Policy Resource: `Zambda:Function`
     */
    delete(params: ZambdaDeleteParams, request?: OystehrClientRequest): Promise<void>;
    /**
     * Execute the [Authenticated Zambda Function](https://docs.oystehr.com/oystehr/services/zambda/types/authenticated/) with the provided ID. [Zambdas](https://docs.oystehr.com/oystehr/services/zambda/) are functions that can be used to execute your code. They can be used to process data received from Oystehr's APIs or to perform operations on third-party services.
     *
     * Access Policy Action: `Zambda:InvokeFunction`
     * Access Policy Resource: `Zambda:Function`
     */
    execute(params: ZambdaExecuteParams, request?: OystehrClientRequest): Promise<ZambdaExecuteResponse>;
    /**
     * Execute the [Public Zambda Function](https://docs.oystehr.com/oystehr/services/zambda/types/public/) with the provided ID. [Zambdas](https://docs.oystehr.com/oystehr/services/zambda/) are functions that can be used to execute your code. They can be used to process data received from Oystehr's APIs or to perform operations on third-party services.
     *
     * Execute a zambda that has method http_open. This endpoint is public so there are no access policy requirements.
     */
    executePublic(params: ZambdaExecutePublicParams, request?: OystehrClientRequest): Promise<ZambdaExecutePublicResponse>;
    /**
     * Returns a URL that is used to deploy code to the Zambda Function with the provided ID. [Zambdas](https://docs.oystehr.com/oystehr/services/zambda/) are functions that can be used to execute your code. They can be used to process data received from Oystehr's APIs or to perform operations on third-party services.
     *
     * Access Policy Action: `Zambda:UpdateFunction`
     * Access Policy Resource: `Zambda:Function`
     */
    s3Upload(params: ZambdaS3UploadParams, request?: OystehrClientRequest): Promise<ZambdaS3UploadResponse>;
}
