import _m0 from 'protobufjs/minimal';
import { Duration } from '../../../../../google/protobuf/duration';
import { LogLevel_Level } from '../../../../../yandex/cloud/logging/v1/log_entry';
export declare const protobufPackage = "yandex.cloud.serverless.functions.v1";
export declare enum MetadataOption {
    /** METADATA_OPTION_UNSPECIFIED - Option is default */
    METADATA_OPTION_UNSPECIFIED = 0,
    /** ENABLED - Option is enabled */
    ENABLED = 1,
    /** DISABLED - Option is disabled */
    DISABLED = 2,
    UNRECOGNIZED = -1
}
export declare function metadataOptionFromJSON(object: any): MetadataOption;
export declare function metadataOptionToJSON(object: MetadataOption): string;
/** A serverless function. For details about the concept, see [Functions](/docs/functions/concepts/function). */
export interface Function {
    /** ID of the function. Generated at creation time. */
    id: string;
    /** ID of the folder that the function belongs to. */
    folderId: string;
    /** Creation timestamp for the function. */
    createdAt?: Date;
    /** Name of the function. The name is unique within the folder. */
    name: string;
    /** Description of the function. */
    description: string;
    /** Function labels as `key:value` pairs. */
    labels: {
        [key: string]: string;
    };
    /** URL that needs to be requested to invoke the function. */
    httpInvokeUrl: string;
    /** Status of the function. */
    status: Function_Status;
}
export declare enum Function_Status {
    STATUS_UNSPECIFIED = 0,
    /** CREATING - Function is being created. */
    CREATING = 1,
    /** ACTIVE - Function is ready to be invoked. */
    ACTIVE = 2,
    /** DELETING - Function is being deleted. */
    DELETING = 3,
    /** ERROR - Function failed. */
    ERROR = 4,
    UNRECOGNIZED = -1
}
export declare function function_StatusFromJSON(object: any): Function_Status;
export declare function function_StatusToJSON(object: Function_Status): string;
export interface Function_LabelsEntry {
    key: string;
    value: string;
}
/** Version of a function. For details about the concept, see [Function versions](/docs/functions/concepts/function#version). */
export interface Version {
    /** ID of the version. */
    id: string;
    /** ID of the function that the version belongs to. */
    functionId: string;
    /** Description of the version. */
    description: string;
    /** Creation timestamp for the version. */
    createdAt?: Date;
    /**
     * ID of the runtime environment for the function.
     *
     * Supported environments and their identifiers are listed in the [Runtime environments](/docs/functions/concepts/runtime).
     */
    runtime: string;
    /**
     * Entrypoint for the function: the name of the function to be called as the handler.
     *
     * Specified in the format `<function file name>.<handler name>`, for example, `index.myFunction`.
     */
    entrypoint: string;
    /** Resources allocated to the version. */
    resources?: Resources;
    /**
     * Timeout for the execution of the version.
     *
     * If the timeout is exceeded, Cloud Functions responds with a 504 HTTP code.
     */
    executionTimeout?: Duration;
    /** ID of the service account associated with the version. */
    serviceAccountId: string;
    /** Final size of the deployment package after unpacking. */
    imageSize: number;
    /** Status of the version. */
    status: Version_Status;
    /** Version tags. For details, see [Version tag](/docs/functions/concepts/function#tag). */
    tags: string[];
    /** Environment settings for the version. */
    environment: {
        [key: string]: string;
    };
    /** Network access. If specified the version will be attached to specified network/subnet(s). */
    connectivity?: Connectivity;
    /** Additional service accounts to be used by the version. */
    namedServiceAccounts: {
        [key: string]: string;
    };
    /** Yandex Lockbox secrets to be used by the version. */
    secrets: Secret[];
    /** Options for logging from the function */
    logOptions?: LogOptions;
    /** S3 mounts to be used by the version. */
    storageMounts: StorageMount[];
    /** Config for asynchronous invocations of the version */
    asyncInvocationConfig?: AsyncInvocationConfig;
    /** Optional size of in-memory mounted /tmp directory in bytes. */
    tmpfsSize: number;
    /** The maximum number of requests processed by a function instance at the same time */
    concurrency: number;
    /** Mounts to be used by the version. */
    mounts: Mount[];
    /** Metadata options for the version. */
    metadataOptions?: MetadataOptions;
}
export declare enum Version_Status {
    STATUS_UNSPECIFIED = 0,
    /** CREATING - Version is being created. */
    CREATING = 1,
    /** ACTIVE - Version is ready to use. */
    ACTIVE = 2,
    /** OBSOLETE - Version will be deleted soon. */
    OBSOLETE = 3,
    /** DELETING - Version is being deleted. */
    DELETING = 4,
    UNRECOGNIZED = -1
}
export declare function version_StatusFromJSON(object: any): Version_Status;
export declare function version_StatusToJSON(object: Version_Status): string;
export interface Version_EnvironmentEntry {
    key: string;
    value: string;
}
export interface Version_NamedServiceAccountsEntry {
    key: string;
    value: string;
}
/** Resources allocated to a version. */
export interface Resources {
    /** Amount of memory available to the version, specified in bytes, multiple of 128MB. */
    memory: number;
}
/** Version deployment package. */
export interface Package {
    /** Name of the bucket that stores the code for the version. */
    bucketName: string;
    /** Name of the object in the bucket that stores the code for the version. */
    objectName: string;
    /** SHA256 hash of the version deployment package. */
    sha256: string;
}
/** Version connectivity specification. */
export interface Connectivity {
    /**
     * Network the version will have access to.
     * It's essential to specify network with subnets in all availability zones.
     */
    networkId: string;
    /**
     * Complete list of subnets (from the same network) the version can be attached to.
     * It's essential to specify at least one subnet for each availability zones.
     */
    subnetId: string[];
}
export interface ScalingPolicy {
    /** ID of the function that the scaling policy belongs to. */
    functionId: string;
    /** Tag of the version that the scaling policy belongs to. For details, see [Version tag](/docs/functions/concepts/function#tag). */
    tag: string;
    /** Creation timestamp for the scaling policy */
    createdAt?: Date;
    /** Modification timestamp for the scaling policy */
    modifiedAt?: Date;
    /**
     * Minimum guaranteed provisioned instances count for all zones in total.
     * Billed separately.
     */
    provisionedInstancesCount: number;
    /**
     * Upper limit for instance count in each zone.
     * 0 means no limit.
     */
    zoneInstancesLimit: number;
    /**
     * Upper limit of requests count in each zone.
     * 0 means no limit.
     */
    zoneRequestsLimit: number;
}
/** Secret for serverless function. */
export interface Secret {
    /** ID of Yandex Lockbox secret. */
    id: string;
    /** ID of Yandex Lockbox version. */
    versionId: string;
    /** Key in secret's payload, which value to be delivered into function environment. */
    key: string;
    /** environment variable in which secret's value to be delivered. */
    environmentVariable: string | undefined;
}
export interface LogOptions {
    /** Is logging from function disabled. */
    disabled: boolean;
    /** Entry should be written to log group resolved by ID. */
    logGroupId: string | undefined;
    /** Entry should be written to default log group for specified folder. */
    folderId: string | undefined;
    /**
     * Minimum log entry level.
     *
     * See [LogLevel.Level] for details.
     */
    minLevel: LogLevel_Level;
}
/** @deprecated */
export interface StorageMount {
    /** S3 bucket name for mounting. */
    bucketId: string;
    /** S3 bucket prefix for mounting. */
    prefix: string;
    /** Mount point directory name (not path) for mounting. */
    mountPointName: string;
    /** Is mount read only. */
    readOnly: boolean;
}
/** Mount contains an information about version's external storage mount */
export interface Mount {
    /** Unique mount point name. Device will be mounted into /function/storage/<name> */
    name: string;
    /** Mount's mode */
    mode: Mount_Mode;
    /** Object storage mounts */
    objectStorage?: Mount_ObjectStorage | undefined;
    /** Working disk (worker-local non-shared read-write NBS disk templates) */
    ephemeralDiskSpec?: Mount_DiskSpec | undefined;
}
export declare enum Mount_Mode {
    MODE_UNSPECIFIED = 0,
    READ_ONLY = 1,
    READ_WRITE = 2,
    UNRECOGNIZED = -1
}
export declare function mount_ModeFromJSON(object: any): Mount_Mode;
export declare function mount_ModeToJSON(object: Mount_Mode): string;
/** ObjectStorage as a mount */
export interface Mount_ObjectStorage {
    /** ObjectStorage bucket name for mounting. */
    bucketId: string;
    /** ObjectStorage bucket prefix for mounting. */
    prefix: string;
}
/** Disk as a mount */
export interface Mount_DiskSpec {
    /** The size of disk for mount in bytes */
    size: number;
    /** Optional block size of disk for mount in bytes */
    blockSize: number;
}
export interface AsyncInvocationConfig {
    /** Number of retries of version invocation */
    retriesCount: number;
    /** Target for successful result of the version's invocation */
    successTarget?: AsyncInvocationConfig_ResponseTarget;
    /** Target for unsuccessful result, if all retries failed */
    failureTarget?: AsyncInvocationConfig_ResponseTarget;
    /** Service account which can invoke version */
    serviceAccountId: string;
}
/** Target to which a result of an invocation will be sent */
export interface AsyncInvocationConfig_ResponseTarget {
    /** Target to ignore a result */
    emptyTarget?: EmptyTarget | undefined;
    /** Target to send a result to ymq */
    ymqTarget?: YMQTarget | undefined;
}
export interface YMQTarget {
    /** Queue ARN */
    queueArn: string;
    /** Service account which has write permission on the queue. */
    serviceAccountId: string;
}
export interface EmptyTarget {
}
export interface MetadataOptions {
    /** Enabled access to GCE flavored metadata */
    gceHttpEndpoint: MetadataOption;
    /** Enabled access to AWS flavored metadata (IMDSv1) */
    awsV1HttpEndpoint: MetadataOption;
}
export declare const Function: {
    encode(message: Function, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Function;
    fromJSON(object: any): Function;
    toJSON(message: Function): unknown;
    fromPartial<I extends Function>(object: I): Function;
};
export declare const Function_LabelsEntry: {
    encode(message: Function_LabelsEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Function_LabelsEntry;
    fromJSON(object: any): Function_LabelsEntry;
    toJSON(message: Function_LabelsEntry): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof Function_LabelsEntry>, never>>(object: I): Function_LabelsEntry;
};
export declare const Version: {
    encode(message: Version, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Version;
    fromJSON(object: any): Version;
    toJSON(message: Version): unknown;
    fromPartial<I extends {
        id?: string | undefined;
        functionId?: string | undefined;
        description?: string | undefined;
        createdAt?: Date | undefined;
        runtime?: string | undefined;
        entrypoint?: string | undefined;
        resources?: {
            memory?: number | undefined;
        } | undefined;
        executionTimeout?: {
            seconds?: number | undefined;
            nanos?: number | undefined;
        } | undefined;
        serviceAccountId?: string | undefined;
        imageSize?: number | undefined;
        status?: Version_Status | undefined;
        tags?: string[] | undefined;
        environment?: {
            [x: string]: string | undefined;
        } | undefined;
        connectivity?: {
            networkId?: string | undefined;
            subnetId?: string[] | undefined;
        } | undefined;
        namedServiceAccounts?: {
            [x: string]: string | undefined;
        } | undefined;
        secrets?: {
            id?: string | undefined;
            versionId?: string | undefined;
            key?: string | undefined;
            environmentVariable?: string | undefined;
        }[] | undefined;
        logOptions?: {
            disabled?: boolean | undefined;
            logGroupId?: string | undefined;
            folderId?: string | undefined;
            minLevel?: LogLevel_Level | undefined;
        } | undefined;
        storageMounts?: {
            bucketId?: string | undefined;
            prefix?: string | undefined;
            mountPointName?: string | undefined;
            readOnly?: boolean | undefined;
        }[] | undefined;
        asyncInvocationConfig?: {
            retriesCount?: number | undefined;
            successTarget?: {
                emptyTarget?: {} | undefined;
                ymqTarget?: {
                    queueArn?: string | undefined;
                    serviceAccountId?: string | undefined;
                } | undefined;
            } | undefined;
            failureTarget?: {
                emptyTarget?: {} | undefined;
                ymqTarget?: {
                    queueArn?: string | undefined;
                    serviceAccountId?: string | undefined;
                } | undefined;
            } | undefined;
            serviceAccountId?: string | undefined;
        } | undefined;
        tmpfsSize?: number | undefined;
        concurrency?: number | undefined;
        mounts?: {
            name?: string | undefined;
            mode?: Mount_Mode | undefined;
            objectStorage?: {
                bucketId?: string | undefined;
                prefix?: string | undefined;
            } | undefined;
            ephemeralDiskSpec?: {
                size?: number | undefined;
                blockSize?: number | undefined;
            } | undefined;
        }[] | undefined;
        metadataOptions?: {
            gceHttpEndpoint?: MetadataOption | undefined;
            awsV1HttpEndpoint?: MetadataOption | undefined;
        } | undefined;
    } & {
        id?: string | undefined;
        functionId?: string | undefined;
        description?: string | undefined;
        createdAt?: Date | undefined;
        runtime?: string | undefined;
        entrypoint?: string | undefined;
        resources?: ({
            memory?: number | undefined;
        } & {
            memory?: number | undefined;
        } & Record<Exclude<keyof I["resources"], "memory">, never>) | undefined;
        executionTimeout?: ({
            seconds?: number | undefined;
            nanos?: number | undefined;
        } & {
            seconds?: number | undefined;
            nanos?: number | undefined;
        } & Record<Exclude<keyof I["executionTimeout"], keyof Duration>, never>) | undefined;
        serviceAccountId?: string | undefined;
        imageSize?: number | undefined;
        status?: Version_Status | undefined;
        tags?: (string[] & string[] & Record<Exclude<keyof I["tags"], keyof string[]>, never>) | undefined;
        environment?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & Record<Exclude<keyof I["environment"], string | number>, never>) | undefined;
        connectivity?: ({
            networkId?: string | undefined;
            subnetId?: string[] | undefined;
        } & {
            networkId?: string | undefined;
            subnetId?: (string[] & string[] & Record<Exclude<keyof I["connectivity"]["subnetId"], keyof string[]>, never>) | undefined;
        } & Record<Exclude<keyof I["connectivity"], keyof Connectivity>, never>) | undefined;
        namedServiceAccounts?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & Record<Exclude<keyof I["namedServiceAccounts"], string | number>, never>) | undefined;
        secrets?: ({
            id?: string | undefined;
            versionId?: string | undefined;
            key?: string | undefined;
            environmentVariable?: string | undefined;
        }[] & ({
            id?: string | undefined;
            versionId?: string | undefined;
            key?: string | undefined;
            environmentVariable?: string | undefined;
        } & {
            id?: string | undefined;
            versionId?: string | undefined;
            key?: string | undefined;
            environmentVariable?: string | undefined;
        } & Record<Exclude<keyof I["secrets"][number], keyof Secret>, never>)[] & Record<Exclude<keyof I["secrets"], keyof {
            id?: string | undefined;
            versionId?: string | undefined;
            key?: string | undefined;
            environmentVariable?: string | undefined;
        }[]>, never>) | undefined;
        logOptions?: ({
            disabled?: boolean | undefined;
            logGroupId?: string | undefined;
            folderId?: string | undefined;
            minLevel?: LogLevel_Level | undefined;
        } & {
            disabled?: boolean | undefined;
            logGroupId?: string | undefined;
            folderId?: string | undefined;
            minLevel?: LogLevel_Level | undefined;
        } & Record<Exclude<keyof I["logOptions"], keyof LogOptions>, never>) | undefined;
        storageMounts?: ({
            bucketId?: string | undefined;
            prefix?: string | undefined;
            mountPointName?: string | undefined;
            readOnly?: boolean | undefined;
        }[] & ({
            bucketId?: string | undefined;
            prefix?: string | undefined;
            mountPointName?: string | undefined;
            readOnly?: boolean | undefined;
        } & {
            bucketId?: string | undefined;
            prefix?: string | undefined;
            mountPointName?: string | undefined;
            readOnly?: boolean | undefined;
        } & Record<Exclude<keyof I["storageMounts"][number], keyof StorageMount>, never>)[] & Record<Exclude<keyof I["storageMounts"], keyof {
            bucketId?: string | undefined;
            prefix?: string | undefined;
            mountPointName?: string | undefined;
            readOnly?: boolean | undefined;
        }[]>, never>) | undefined;
        asyncInvocationConfig?: ({
            retriesCount?: number | undefined;
            successTarget?: {
                emptyTarget?: {} | undefined;
                ymqTarget?: {
                    queueArn?: string | undefined;
                    serviceAccountId?: string | undefined;
                } | undefined;
            } | undefined;
            failureTarget?: {
                emptyTarget?: {} | undefined;
                ymqTarget?: {
                    queueArn?: string | undefined;
                    serviceAccountId?: string | undefined;
                } | undefined;
            } | undefined;
            serviceAccountId?: string | undefined;
        } & {
            retriesCount?: number | undefined;
            successTarget?: ({
                emptyTarget?: {} | undefined;
                ymqTarget?: {
                    queueArn?: string | undefined;
                    serviceAccountId?: string | undefined;
                } | undefined;
            } & {
                emptyTarget?: ({} & {} & Record<Exclude<keyof I["asyncInvocationConfig"]["successTarget"]["emptyTarget"], never>, never>) | undefined;
                ymqTarget?: ({
                    queueArn?: string | undefined;
                    serviceAccountId?: string | undefined;
                } & {
                    queueArn?: string | undefined;
                    serviceAccountId?: string | undefined;
                } & Record<Exclude<keyof I["asyncInvocationConfig"]["successTarget"]["ymqTarget"], keyof YMQTarget>, never>) | undefined;
            } & Record<Exclude<keyof I["asyncInvocationConfig"]["successTarget"], keyof AsyncInvocationConfig_ResponseTarget>, never>) | undefined;
            failureTarget?: ({
                emptyTarget?: {} | undefined;
                ymqTarget?: {
                    queueArn?: string | undefined;
                    serviceAccountId?: string | undefined;
                } | undefined;
            } & {
                emptyTarget?: ({} & {} & Record<Exclude<keyof I["asyncInvocationConfig"]["failureTarget"]["emptyTarget"], never>, never>) | undefined;
                ymqTarget?: ({
                    queueArn?: string | undefined;
                    serviceAccountId?: string | undefined;
                } & {
                    queueArn?: string | undefined;
                    serviceAccountId?: string | undefined;
                } & Record<Exclude<keyof I["asyncInvocationConfig"]["failureTarget"]["ymqTarget"], keyof YMQTarget>, never>) | undefined;
            } & Record<Exclude<keyof I["asyncInvocationConfig"]["failureTarget"], keyof AsyncInvocationConfig_ResponseTarget>, never>) | undefined;
            serviceAccountId?: string | undefined;
        } & Record<Exclude<keyof I["asyncInvocationConfig"], keyof AsyncInvocationConfig>, never>) | undefined;
        tmpfsSize?: number | undefined;
        concurrency?: number | undefined;
        mounts?: ({
            name?: string | undefined;
            mode?: Mount_Mode | undefined;
            objectStorage?: {
                bucketId?: string | undefined;
                prefix?: string | undefined;
            } | undefined;
            ephemeralDiskSpec?: {
                size?: number | undefined;
                blockSize?: number | undefined;
            } | undefined;
        }[] & ({
            name?: string | undefined;
            mode?: Mount_Mode | undefined;
            objectStorage?: {
                bucketId?: string | undefined;
                prefix?: string | undefined;
            } | undefined;
            ephemeralDiskSpec?: {
                size?: number | undefined;
                blockSize?: number | undefined;
            } | undefined;
        } & {
            name?: string | undefined;
            mode?: Mount_Mode | undefined;
            objectStorage?: ({
                bucketId?: string | undefined;
                prefix?: string | undefined;
            } & {
                bucketId?: string | undefined;
                prefix?: string | undefined;
            } & Record<Exclude<keyof I["mounts"][number]["objectStorage"], keyof Mount_ObjectStorage>, never>) | undefined;
            ephemeralDiskSpec?: ({
                size?: number | undefined;
                blockSize?: number | undefined;
            } & {
                size?: number | undefined;
                blockSize?: number | undefined;
            } & Record<Exclude<keyof I["mounts"][number]["ephemeralDiskSpec"], keyof Mount_DiskSpec>, never>) | undefined;
        } & Record<Exclude<keyof I["mounts"][number], keyof Mount>, never>)[] & Record<Exclude<keyof I["mounts"], keyof {
            name?: string | undefined;
            mode?: Mount_Mode | undefined;
            objectStorage?: {
                bucketId?: string | undefined;
                prefix?: string | undefined;
            } | undefined;
            ephemeralDiskSpec?: {
                size?: number | undefined;
                blockSize?: number | undefined;
            } | undefined;
        }[]>, never>) | undefined;
        metadataOptions?: ({
            gceHttpEndpoint?: MetadataOption | undefined;
            awsV1HttpEndpoint?: MetadataOption | undefined;
        } & {
            gceHttpEndpoint?: MetadataOption | undefined;
            awsV1HttpEndpoint?: MetadataOption | undefined;
        } & Record<Exclude<keyof I["metadataOptions"], keyof MetadataOptions>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof Version>, never>>(object: I): Version;
};
export declare const Version_EnvironmentEntry: {
    encode(message: Version_EnvironmentEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Version_EnvironmentEntry;
    fromJSON(object: any): Version_EnvironmentEntry;
    toJSON(message: Version_EnvironmentEntry): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof Version_EnvironmentEntry>, never>>(object: I): Version_EnvironmentEntry;
};
export declare const Version_NamedServiceAccountsEntry: {
    encode(message: Version_NamedServiceAccountsEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Version_NamedServiceAccountsEntry;
    fromJSON(object: any): Version_NamedServiceAccountsEntry;
    toJSON(message: Version_NamedServiceAccountsEntry): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof Version_NamedServiceAccountsEntry>, never>>(object: I): Version_NamedServiceAccountsEntry;
};
export declare const Resources: {
    encode(message: Resources, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Resources;
    fromJSON(object: any): Resources;
    toJSON(message: Resources): unknown;
    fromPartial<I extends {
        memory?: number | undefined;
    } & {
        memory?: number | undefined;
    } & Record<Exclude<keyof I, "memory">, never>>(object: I): Resources;
};
export declare const Package: {
    encode(message: Package, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Package;
    fromJSON(object: any): Package;
    toJSON(message: Package): unknown;
    fromPartial<I extends {
        bucketName?: string | undefined;
        objectName?: string | undefined;
        sha256?: string | undefined;
    } & {
        bucketName?: string | undefined;
        objectName?: string | undefined;
        sha256?: string | undefined;
    } & Record<Exclude<keyof I, keyof Package>, never>>(object: I): Package;
};
export declare const Connectivity: {
    encode(message: Connectivity, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Connectivity;
    fromJSON(object: any): Connectivity;
    toJSON(message: Connectivity): unknown;
    fromPartial<I extends {
        networkId?: string | undefined;
        subnetId?: string[] | undefined;
    } & {
        networkId?: string | undefined;
        subnetId?: (string[] & string[] & Record<Exclude<keyof I["subnetId"], keyof string[]>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof Connectivity>, never>>(object: I): Connectivity;
};
export declare const ScalingPolicy: {
    encode(message: ScalingPolicy, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ScalingPolicy;
    fromJSON(object: any): ScalingPolicy;
    toJSON(message: ScalingPolicy): unknown;
    fromPartial<I extends {
        functionId?: string | undefined;
        tag?: string | undefined;
        createdAt?: Date | undefined;
        modifiedAt?: Date | undefined;
        provisionedInstancesCount?: number | undefined;
        zoneInstancesLimit?: number | undefined;
        zoneRequestsLimit?: number | undefined;
    } & {
        functionId?: string | undefined;
        tag?: string | undefined;
        createdAt?: Date | undefined;
        modifiedAt?: Date | undefined;
        provisionedInstancesCount?: number | undefined;
        zoneInstancesLimit?: number | undefined;
        zoneRequestsLimit?: number | undefined;
    } & Record<Exclude<keyof I, keyof ScalingPolicy>, never>>(object: I): ScalingPolicy;
};
export declare const Secret: {
    encode(message: Secret, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Secret;
    fromJSON(object: any): Secret;
    toJSON(message: Secret): unknown;
    fromPartial<I extends {
        id?: string | undefined;
        versionId?: string | undefined;
        key?: string | undefined;
        environmentVariable?: string | undefined;
    } & {
        id?: string | undefined;
        versionId?: string | undefined;
        key?: string | undefined;
        environmentVariable?: string | undefined;
    } & Record<Exclude<keyof I, keyof Secret>, never>>(object: I): Secret;
};
export declare const LogOptions: {
    encode(message: LogOptions, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): LogOptions;
    fromJSON(object: any): LogOptions;
    toJSON(message: LogOptions): unknown;
    fromPartial<I extends {
        disabled?: boolean | undefined;
        logGroupId?: string | undefined;
        folderId?: string | undefined;
        minLevel?: LogLevel_Level | undefined;
    } & {
        disabled?: boolean | undefined;
        logGroupId?: string | undefined;
        folderId?: string | undefined;
        minLevel?: LogLevel_Level | undefined;
    } & Record<Exclude<keyof I, keyof LogOptions>, never>>(object: I): LogOptions;
};
export declare const StorageMount: {
    encode(message: StorageMount, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): StorageMount;
    fromJSON(object: any): StorageMount;
    toJSON(message: StorageMount): unknown;
    fromPartial<I extends {
        bucketId?: string | undefined;
        prefix?: string | undefined;
        mountPointName?: string | undefined;
        readOnly?: boolean | undefined;
    } & {
        bucketId?: string | undefined;
        prefix?: string | undefined;
        mountPointName?: string | undefined;
        readOnly?: boolean | undefined;
    } & Record<Exclude<keyof I, keyof StorageMount>, never>>(object: I): StorageMount;
};
export declare const Mount: {
    encode(message: Mount, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Mount;
    fromJSON(object: any): Mount;
    toJSON(message: Mount): unknown;
    fromPartial<I extends {
        name?: string | undefined;
        mode?: Mount_Mode | undefined;
        objectStorage?: {
            bucketId?: string | undefined;
            prefix?: string | undefined;
        } | undefined;
        ephemeralDiskSpec?: {
            size?: number | undefined;
            blockSize?: number | undefined;
        } | undefined;
    } & {
        name?: string | undefined;
        mode?: Mount_Mode | undefined;
        objectStorage?: ({
            bucketId?: string | undefined;
            prefix?: string | undefined;
        } & {
            bucketId?: string | undefined;
            prefix?: string | undefined;
        } & Record<Exclude<keyof I["objectStorage"], keyof Mount_ObjectStorage>, never>) | undefined;
        ephemeralDiskSpec?: ({
            size?: number | undefined;
            blockSize?: number | undefined;
        } & {
            size?: number | undefined;
            blockSize?: number | undefined;
        } & Record<Exclude<keyof I["ephemeralDiskSpec"], keyof Mount_DiskSpec>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof Mount>, never>>(object: I): Mount;
};
export declare const Mount_ObjectStorage: {
    encode(message: Mount_ObjectStorage, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Mount_ObjectStorage;
    fromJSON(object: any): Mount_ObjectStorage;
    toJSON(message: Mount_ObjectStorage): unknown;
    fromPartial<I extends {
        bucketId?: string | undefined;
        prefix?: string | undefined;
    } & {
        bucketId?: string | undefined;
        prefix?: string | undefined;
    } & Record<Exclude<keyof I, keyof Mount_ObjectStorage>, never>>(object: I): Mount_ObjectStorage;
};
export declare const Mount_DiskSpec: {
    encode(message: Mount_DiskSpec, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Mount_DiskSpec;
    fromJSON(object: any): Mount_DiskSpec;
    toJSON(message: Mount_DiskSpec): unknown;
    fromPartial<I extends {
        size?: number | undefined;
        blockSize?: number | undefined;
    } & {
        size?: number | undefined;
        blockSize?: number | undefined;
    } & Record<Exclude<keyof I, keyof Mount_DiskSpec>, never>>(object: I): Mount_DiskSpec;
};
export declare const AsyncInvocationConfig: {
    encode(message: AsyncInvocationConfig, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): AsyncInvocationConfig;
    fromJSON(object: any): AsyncInvocationConfig;
    toJSON(message: AsyncInvocationConfig): unknown;
    fromPartial<I extends {
        retriesCount?: number | undefined;
        successTarget?: {
            emptyTarget?: {} | undefined;
            ymqTarget?: {
                queueArn?: string | undefined;
                serviceAccountId?: string | undefined;
            } | undefined;
        } | undefined;
        failureTarget?: {
            emptyTarget?: {} | undefined;
            ymqTarget?: {
                queueArn?: string | undefined;
                serviceAccountId?: string | undefined;
            } | undefined;
        } | undefined;
        serviceAccountId?: string | undefined;
    } & {
        retriesCount?: number | undefined;
        successTarget?: ({
            emptyTarget?: {} | undefined;
            ymqTarget?: {
                queueArn?: string | undefined;
                serviceAccountId?: string | undefined;
            } | undefined;
        } & {
            emptyTarget?: ({} & {} & Record<Exclude<keyof I["successTarget"]["emptyTarget"], never>, never>) | undefined;
            ymqTarget?: ({
                queueArn?: string | undefined;
                serviceAccountId?: string | undefined;
            } & {
                queueArn?: string | undefined;
                serviceAccountId?: string | undefined;
            } & Record<Exclude<keyof I["successTarget"]["ymqTarget"], keyof YMQTarget>, never>) | undefined;
        } & Record<Exclude<keyof I["successTarget"], keyof AsyncInvocationConfig_ResponseTarget>, never>) | undefined;
        failureTarget?: ({
            emptyTarget?: {} | undefined;
            ymqTarget?: {
                queueArn?: string | undefined;
                serviceAccountId?: string | undefined;
            } | undefined;
        } & {
            emptyTarget?: ({} & {} & Record<Exclude<keyof I["failureTarget"]["emptyTarget"], never>, never>) | undefined;
            ymqTarget?: ({
                queueArn?: string | undefined;
                serviceAccountId?: string | undefined;
            } & {
                queueArn?: string | undefined;
                serviceAccountId?: string | undefined;
            } & Record<Exclude<keyof I["failureTarget"]["ymqTarget"], keyof YMQTarget>, never>) | undefined;
        } & Record<Exclude<keyof I["failureTarget"], keyof AsyncInvocationConfig_ResponseTarget>, never>) | undefined;
        serviceAccountId?: string | undefined;
    } & Record<Exclude<keyof I, keyof AsyncInvocationConfig>, never>>(object: I): AsyncInvocationConfig;
};
export declare const AsyncInvocationConfig_ResponseTarget: {
    encode(message: AsyncInvocationConfig_ResponseTarget, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): AsyncInvocationConfig_ResponseTarget;
    fromJSON(object: any): AsyncInvocationConfig_ResponseTarget;
    toJSON(message: AsyncInvocationConfig_ResponseTarget): unknown;
    fromPartial<I extends {
        emptyTarget?: {} | undefined;
        ymqTarget?: {
            queueArn?: string | undefined;
            serviceAccountId?: string | undefined;
        } | undefined;
    } & {
        emptyTarget?: ({} & {} & Record<Exclude<keyof I["emptyTarget"], never>, never>) | undefined;
        ymqTarget?: ({
            queueArn?: string | undefined;
            serviceAccountId?: string | undefined;
        } & {
            queueArn?: string | undefined;
            serviceAccountId?: string | undefined;
        } & Record<Exclude<keyof I["ymqTarget"], keyof YMQTarget>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof AsyncInvocationConfig_ResponseTarget>, never>>(object: I): AsyncInvocationConfig_ResponseTarget;
};
export declare const YMQTarget: {
    encode(message: YMQTarget, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): YMQTarget;
    fromJSON(object: any): YMQTarget;
    toJSON(message: YMQTarget): unknown;
    fromPartial<I extends {
        queueArn?: string | undefined;
        serviceAccountId?: string | undefined;
    } & {
        queueArn?: string | undefined;
        serviceAccountId?: string | undefined;
    } & Record<Exclude<keyof I, keyof YMQTarget>, never>>(object: I): YMQTarget;
};
export declare const EmptyTarget: {
    encode(_: EmptyTarget, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): EmptyTarget;
    fromJSON(_: any): EmptyTarget;
    toJSON(_: EmptyTarget): unknown;
    fromPartial<I extends {} & {} & Record<Exclude<keyof I, never>, never>>(_: I): EmptyTarget;
};
export declare const MetadataOptions: {
    encode(message: MetadataOptions, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MetadataOptions;
    fromJSON(object: any): MetadataOptions;
    toJSON(message: MetadataOptions): unknown;
    fromPartial<I extends {
        gceHttpEndpoint?: MetadataOption | undefined;
        awsV1HttpEndpoint?: MetadataOption | undefined;
    } & {
        gceHttpEndpoint?: MetadataOption | undefined;
        awsV1HttpEndpoint?: MetadataOption | undefined;
    } & Record<Exclude<keyof I, keyof MetadataOptions>, never>>(object: I): MetadataOptions;
};
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
    [K in keyof T]?: DeepPartial<T[K]>;
} : Partial<T>;
type KeysOfUnion<T> = T extends T ? keyof T : never;
export type Exact<P, I extends P> = P extends Builtin ? P : P & {
    [K in keyof P]: Exact<P[K], I[K]>;
} & Record<Exclude<keyof I, KeysOfUnion<P>>, never>;
export {};
