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.containers.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;
export interface Container {
    /** ID of the container. Generated at creation time. */
    id: string;
    /** ID of the folder that the container belongs to. */
    folderId: string;
    /** Creation timestamp for the container. */
    createdAt?: Date;
    /** Name of the container. The name is unique within the folder. */
    name: string;
    /** Description of the container. */
    description: string;
    /** Container labels as `key:value` pairs. */
    labels: {
        [key: string]: string;
    };
    /** URL that needs to be requested to call the container. */
    url: string;
    /** Status of the container. */
    status: Container_Status;
}
export declare enum Container_Status {
    STATUS_UNSPECIFIED = 0,
    /** CREATING - Container is being created. */
    CREATING = 1,
    /** ACTIVE - Container is ready for use. */
    ACTIVE = 2,
    /** DELETING - Container is being deleted. */
    DELETING = 3,
    /** ERROR - Container failed. The only allowed action is delete. */
    ERROR = 4,
    UNRECOGNIZED = -1
}
export declare function container_StatusFromJSON(object: any): Container_Status;
export declare function container_StatusToJSON(object: Container_Status): string;
export interface Container_LabelsEntry {
    key: string;
    value: string;
}
export interface Revision {
    /** ID of the revision. */
    id: string;
    /** ID of the container that the revision belongs to. */
    containerId: string;
    /** Description of the revision. */
    description: string;
    /** Creation timestamp for the revision. */
    createdAt?: Date;
    /** Image configuration for the revision. */
    image?: Image;
    /** Resources allocated to the revision. */
    resources?: Resources;
    /**
     * Timeout for the execution of the revision.
     *
     * If the timeout is exceeded, Serverless Containers responds with a 504 HTTP code.
     */
    executionTimeout?: Duration;
    /** The number of concurrent requests allowed per container instance. */
    concurrency: number;
    /** ID of the service account associated with the revision. */
    serviceAccountId: string;
    /** Status of the revision. */
    status: Revision_Status;
    /** Yandex Lockbox secrets to be used by the revision. */
    secrets: Secret[];
    /** Network access. If specified the revision will be attached to specified network/subnet(s). */
    connectivity?: Connectivity;
    /**
     * Policy for provisioning instances of the revision.
     *
     * The policy is only applied when the revision is ACTIVE.
     */
    provisionPolicy?: ProvisionPolicy;
    /** Policy for scaling instances of the revision. */
    scalingPolicy?: ScalingPolicy;
    /** Options for logging from the container. */
    logOptions?: LogOptions;
    /** S3 mounts to be used by the revision. */
    storageMounts: StorageMount[];
    /** Mounts to be used by the revision. */
    mounts: Mount[];
    /** The container's execution mode */
    runtime?: Runtime;
    /** Metadata options for the revision. */
    metadataOptions?: MetadataOptions;
}
export declare enum Revision_Status {
    STATUS_UNSPECIFIED = 0,
    /** CREATING - Revision is being created. */
    CREATING = 1,
    /** ACTIVE - Revision is currently used by the container. */
    ACTIVE = 2,
    /** OBSOLETE - Revision is not used by the container. May be deleted later. */
    OBSOLETE = 3,
    UNRECOGNIZED = -1
}
export declare function revision_StatusFromJSON(object: any): Revision_Status;
export declare function revision_StatusToJSON(object: Revision_Status): string;
/** Revision image specification. */
export interface Image {
    /** Image URL, that is used by the revision. */
    imageUrl: string;
    /** Digest of the image. Calculated at creation time. */
    imageDigest: string;
    /** Override for the image's ENTRYPOINT. */
    command?: Command;
    /** Override for the image's CMD. */
    args?: Args;
    /** Additional environment for the container. */
    environment: {
        [key: string]: string;
    };
    /** Override for the image's WORKDIR. */
    workingDir: string;
}
export interface Image_EnvironmentEntry {
    key: string;
    value: string;
}
export interface Command {
    /**
     * Command that will override ENTRYPOINT of an image.
     *
     * Commands will be executed as is. The runtime will not substitute environment
     * variables or execute shell commands. If one wants to do that, they should
     * invoke shell interpreter with an appropriate shell script.
     */
    command: string[];
}
export interface Args {
    /**
     * Arguments that will override CMD of an image.
     *
     * Arguments will be passed as is. The runtime will not substitute environment
     * variables or execute shell commands. If one wants to do that, they should
     * invoke shell interpreter with an appropriate shell script.
     */
    args: string[];
}
/** Resources allocated to a revision. */
export interface Resources {
    /** Amount of memory available to the revision, specified in bytes, multiple of 128MB. */
    memory: number;
    /** Number of cores available to the revision. */
    cores: number;
    /**
     * Specifies baseline performance for a core in percent, multiple of 5%.
     * Should be 100% for cores > 1.
     */
    coreFraction: number;
}
export interface ProvisionPolicy {
    /**
     * Minimum number of guaranteed provisioned container instances for all zones
     * in total.
     */
    minInstances: number;
}
/** Secret that is available to the container at run time. */
export interface Secret {
    /** ID of Yandex Lockbox secret. */
    id: string;
    /** ID of Yandex Lockbox secret. */
    versionId: string;
    /** Key in secret's payload, which value to be delivered into container environment. */
    key: string;
    /** Environment variable in which secret's value is delivered. */
    environmentVariable: string | undefined;
}
/** Revision connectivity specification. */
export interface Connectivity {
    /** Network the revision will have access to. */
    networkId: string;
    /**
     * The list of subnets (from the same network) the revision can be attached to.
     *
     * Deprecated, it is sufficient to specify only network_id, without the list of subnet_ids.
     */
    subnetIds: string[];
}
export interface LogOptions {
    /** Is logging from container 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;
}
export interface ScalingPolicy {
    /**
     * 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;
}
/** @deprecated */
export interface StorageMount {
    /** S3 bucket name for mounting. */
    bucketId: string;
    /** S3 bucket prefix for mounting. */
    prefix: string;
    /** Is mount read only. */
    readOnly: boolean;
    /** Mount point path inside the container for mounting. */
    mountPointPath: string;
}
/** Mount contains an information about version's external storage mount */
export interface Mount {
    /** The absolute mount point path inside the container for mounting. */
    mountPointPath: 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;
}
/** The container's execution mode */
export interface Runtime {
    /** The classic one. You need to run an HTTP server inside the container. */
    http?: Runtime_Http | undefined;
    /** We run a process from ENTRYPOINT inside the container for each user request. */
    task?: Runtime_Task | undefined;
}
export interface Runtime_Http {
}
export interface Runtime_Task {
}
export interface MetadataOptions {
    /** Enabled access to GCE flavored metadata */
    gceHttpEndpoint: MetadataOption;
    /** Enabled access to AWS flavored metadata (IMDSv1) */
    awsV1HttpEndpoint: MetadataOption;
}
export declare const Container: {
    encode(message: Container, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Container;
    fromJSON(object: any): Container;
    toJSON(message: Container): unknown;
    fromPartial<I extends {
        id?: string | undefined;
        folderId?: string | undefined;
        createdAt?: Date | undefined;
        name?: string | undefined;
        description?: string | undefined;
        labels?: {
            [x: string]: string | undefined;
        } | undefined;
        url?: string | undefined;
        status?: Container_Status | undefined;
    } & {
        id?: string | undefined;
        folderId?: string | undefined;
        createdAt?: Date | undefined;
        name?: string | undefined;
        description?: string | undefined;
        labels?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & Record<Exclude<keyof I["labels"], string | number>, never>) | undefined;
        url?: string | undefined;
        status?: Container_Status | undefined;
    } & Record<Exclude<keyof I, keyof Container>, never>>(object: I): Container;
};
export declare const Container_LabelsEntry: {
    encode(message: Container_LabelsEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Container_LabelsEntry;
    fromJSON(object: any): Container_LabelsEntry;
    toJSON(message: Container_LabelsEntry): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof Container_LabelsEntry>, never>>(object: I): Container_LabelsEntry;
};
export declare const Revision: {
    encode(message: Revision, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Revision;
    fromJSON(object: any): Revision;
    toJSON(message: Revision): unknown;
    fromPartial<I extends {
        id?: string | undefined;
        containerId?: string | undefined;
        description?: string | undefined;
        createdAt?: Date | undefined;
        image?: {
            imageUrl?: string | undefined;
            imageDigest?: string | undefined;
            command?: {
                command?: string[] | undefined;
            } | undefined;
            args?: {
                args?: string[] | undefined;
            } | undefined;
            environment?: {
                [x: string]: string | undefined;
            } | undefined;
            workingDir?: string | undefined;
        } | undefined;
        resources?: {
            memory?: number | undefined;
            cores?: number | undefined;
            coreFraction?: number | undefined;
        } | undefined;
        executionTimeout?: {
            seconds?: number | undefined;
            nanos?: number | undefined;
        } | undefined;
        concurrency?: number | undefined;
        serviceAccountId?: string | undefined;
        status?: Revision_Status | undefined;
        secrets?: {
            id?: string | undefined;
            versionId?: string | undefined;
            key?: string | undefined;
            environmentVariable?: string | undefined;
        }[] | undefined;
        connectivity?: {
            networkId?: string | undefined;
            subnetIds?: string[] | undefined;
        } | undefined;
        provisionPolicy?: {
            minInstances?: number | undefined;
        } | undefined;
        scalingPolicy?: {
            zoneInstancesLimit?: number | undefined;
            zoneRequestsLimit?: number | undefined;
        } | undefined;
        logOptions?: {
            disabled?: boolean | undefined;
            logGroupId?: string | undefined;
            folderId?: string | undefined;
            minLevel?: LogLevel_Level | undefined;
        } | undefined;
        storageMounts?: {
            bucketId?: string | undefined;
            prefix?: string | undefined;
            readOnly?: boolean | undefined;
            mountPointPath?: string | undefined;
        }[] | undefined;
        mounts?: {
            mountPointPath?: string | undefined;
            mode?: Mount_Mode | undefined;
            objectStorage?: {
                bucketId?: string | undefined;
                prefix?: string | undefined;
            } | undefined;
            ephemeralDiskSpec?: {
                size?: number | undefined;
                blockSize?: number | undefined;
            } | undefined;
        }[] | undefined;
        runtime?: {
            http?: {} | undefined;
            task?: {} | undefined;
        } | undefined;
        metadataOptions?: {
            gceHttpEndpoint?: MetadataOption | undefined;
            awsV1HttpEndpoint?: MetadataOption | undefined;
        } | undefined;
    } & {
        id?: string | undefined;
        containerId?: string | undefined;
        description?: string | undefined;
        createdAt?: Date | undefined;
        image?: ({
            imageUrl?: string | undefined;
            imageDigest?: string | undefined;
            command?: {
                command?: string[] | undefined;
            } | undefined;
            args?: {
                args?: string[] | undefined;
            } | undefined;
            environment?: {
                [x: string]: string | undefined;
            } | undefined;
            workingDir?: string | undefined;
        } & {
            imageUrl?: string | undefined;
            imageDigest?: string | undefined;
            command?: ({
                command?: string[] | undefined;
            } & {
                command?: (string[] & string[] & Record<Exclude<keyof I["image"]["command"]["command"], keyof string[]>, never>) | undefined;
            } & Record<Exclude<keyof I["image"]["command"], "command">, never>) | undefined;
            args?: ({
                args?: string[] | undefined;
            } & {
                args?: (string[] & string[] & Record<Exclude<keyof I["image"]["args"]["args"], keyof string[]>, never>) | undefined;
            } & Record<Exclude<keyof I["image"]["args"], "args">, never>) | undefined;
            environment?: ({
                [x: string]: string | undefined;
            } & {
                [x: string]: string | undefined;
            } & Record<Exclude<keyof I["image"]["environment"], string | number>, never>) | undefined;
            workingDir?: string | undefined;
        } & Record<Exclude<keyof I["image"], keyof Image>, never>) | undefined;
        resources?: ({
            memory?: number | undefined;
            cores?: number | undefined;
            coreFraction?: number | undefined;
        } & {
            memory?: number | undefined;
            cores?: number | undefined;
            coreFraction?: number | undefined;
        } & Record<Exclude<keyof I["resources"], keyof Resources>, never>) | undefined;
        executionTimeout?: ({
            seconds?: number | undefined;
            nanos?: number | undefined;
        } & {
            seconds?: number | undefined;
            nanos?: number | undefined;
        } & Record<Exclude<keyof I["executionTimeout"], keyof Duration>, never>) | undefined;
        concurrency?: number | undefined;
        serviceAccountId?: string | undefined;
        status?: Revision_Status | 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;
        connectivity?: ({
            networkId?: string | undefined;
            subnetIds?: string[] | undefined;
        } & {
            networkId?: string | undefined;
            subnetIds?: (string[] & string[] & Record<Exclude<keyof I["connectivity"]["subnetIds"], keyof string[]>, never>) | undefined;
        } & Record<Exclude<keyof I["connectivity"], keyof Connectivity>, never>) | undefined;
        provisionPolicy?: ({
            minInstances?: number | undefined;
        } & {
            minInstances?: number | undefined;
        } & Record<Exclude<keyof I["provisionPolicy"], "minInstances">, never>) | undefined;
        scalingPolicy?: ({
            zoneInstancesLimit?: number | undefined;
            zoneRequestsLimit?: number | undefined;
        } & {
            zoneInstancesLimit?: number | undefined;
            zoneRequestsLimit?: number | undefined;
        } & Record<Exclude<keyof I["scalingPolicy"], keyof ScalingPolicy>, 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;
            readOnly?: boolean | undefined;
            mountPointPath?: string | undefined;
        }[] & ({
            bucketId?: string | undefined;
            prefix?: string | undefined;
            readOnly?: boolean | undefined;
            mountPointPath?: string | undefined;
        } & {
            bucketId?: string | undefined;
            prefix?: string | undefined;
            readOnly?: boolean | undefined;
            mountPointPath?: string | undefined;
        } & Record<Exclude<keyof I["storageMounts"][number], keyof StorageMount>, never>)[] & Record<Exclude<keyof I["storageMounts"], keyof {
            bucketId?: string | undefined;
            prefix?: string | undefined;
            readOnly?: boolean | undefined;
            mountPointPath?: string | undefined;
        }[]>, never>) | undefined;
        mounts?: ({
            mountPointPath?: string | undefined;
            mode?: Mount_Mode | undefined;
            objectStorage?: {
                bucketId?: string | undefined;
                prefix?: string | undefined;
            } | undefined;
            ephemeralDiskSpec?: {
                size?: number | undefined;
                blockSize?: number | undefined;
            } | undefined;
        }[] & ({
            mountPointPath?: string | undefined;
            mode?: Mount_Mode | undefined;
            objectStorage?: {
                bucketId?: string | undefined;
                prefix?: string | undefined;
            } | undefined;
            ephemeralDiskSpec?: {
                size?: number | undefined;
                blockSize?: number | undefined;
            } | undefined;
        } & {
            mountPointPath?: 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 {
            mountPointPath?: string | undefined;
            mode?: Mount_Mode | undefined;
            objectStorage?: {
                bucketId?: string | undefined;
                prefix?: string | undefined;
            } | undefined;
            ephemeralDiskSpec?: {
                size?: number | undefined;
                blockSize?: number | undefined;
            } | undefined;
        }[]>, never>) | undefined;
        runtime?: ({
            http?: {} | undefined;
            task?: {} | undefined;
        } & {
            http?: ({} & {} & Record<Exclude<keyof I["runtime"]["http"], never>, never>) | undefined;
            task?: ({} & {} & Record<Exclude<keyof I["runtime"]["task"], never>, never>) | undefined;
        } & Record<Exclude<keyof I["runtime"], keyof Runtime>, 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 Revision>, never>>(object: I): Revision;
};
export declare const Image: {
    encode(message: Image, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Image;
    fromJSON(object: any): Image;
    toJSON(message: Image): unknown;
    fromPartial<I extends {
        imageUrl?: string | undefined;
        imageDigest?: string | undefined;
        command?: {
            command?: string[] | undefined;
        } | undefined;
        args?: {
            args?: string[] | undefined;
        } | undefined;
        environment?: {
            [x: string]: string | undefined;
        } | undefined;
        workingDir?: string | undefined;
    } & {
        imageUrl?: string | undefined;
        imageDigest?: string | undefined;
        command?: ({
            command?: string[] | undefined;
        } & {
            command?: (string[] & string[] & Record<Exclude<keyof I["command"]["command"], keyof string[]>, never>) | undefined;
        } & Record<Exclude<keyof I["command"], "command">, never>) | undefined;
        args?: ({
            args?: string[] | undefined;
        } & {
            args?: (string[] & string[] & Record<Exclude<keyof I["args"]["args"], keyof string[]>, never>) | undefined;
        } & Record<Exclude<keyof I["args"], "args">, never>) | undefined;
        environment?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & Record<Exclude<keyof I["environment"], string | number>, never>) | undefined;
        workingDir?: string | undefined;
    } & Record<Exclude<keyof I, keyof Image>, never>>(object: I): Image;
};
export declare const Image_EnvironmentEntry: {
    encode(message: Image_EnvironmentEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Image_EnvironmentEntry;
    fromJSON(object: any): Image_EnvironmentEntry;
    toJSON(message: Image_EnvironmentEntry): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof Image_EnvironmentEntry>, never>>(object: I): Image_EnvironmentEntry;
};
export declare const Command: {
    encode(message: Command, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Command;
    fromJSON(object: any): Command;
    toJSON(message: Command): unknown;
    fromPartial<I extends {
        command?: string[] | undefined;
    } & {
        command?: (string[] & string[] & Record<Exclude<keyof I["command"], keyof string[]>, never>) | undefined;
    } & Record<Exclude<keyof I, "command">, never>>(object: I): Command;
};
export declare const Args: {
    encode(message: Args, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Args;
    fromJSON(object: any): Args;
    toJSON(message: Args): unknown;
    fromPartial<I extends {
        args?: string[] | undefined;
    } & {
        args?: (string[] & string[] & Record<Exclude<keyof I["args"], keyof string[]>, never>) | undefined;
    } & Record<Exclude<keyof I, "args">, never>>(object: I): Args;
};
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;
        cores?: number | undefined;
        coreFraction?: number | undefined;
    } & {
        memory?: number | undefined;
        cores?: number | undefined;
        coreFraction?: number | undefined;
    } & Record<Exclude<keyof I, keyof Resources>, never>>(object: I): Resources;
};
export declare const ProvisionPolicy: {
    encode(message: ProvisionPolicy, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ProvisionPolicy;
    fromJSON(object: any): ProvisionPolicy;
    toJSON(message: ProvisionPolicy): unknown;
    fromPartial<I extends {
        minInstances?: number | undefined;
    } & {
        minInstances?: number | undefined;
    } & Record<Exclude<keyof I, "minInstances">, never>>(object: I): ProvisionPolicy;
};
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 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;
        subnetIds?: string[] | undefined;
    } & {
        networkId?: string | undefined;
        subnetIds?: (string[] & string[] & Record<Exclude<keyof I["subnetIds"], keyof string[]>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof Connectivity>, never>>(object: I): Connectivity;
};
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 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 {
        zoneInstancesLimit?: number | undefined;
        zoneRequestsLimit?: number | undefined;
    } & {
        zoneInstancesLimit?: number | undefined;
        zoneRequestsLimit?: number | undefined;
    } & Record<Exclude<keyof I, keyof ScalingPolicy>, never>>(object: I): ScalingPolicy;
};
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;
        readOnly?: boolean | undefined;
        mountPointPath?: string | undefined;
    } & {
        bucketId?: string | undefined;
        prefix?: string | undefined;
        readOnly?: boolean | undefined;
        mountPointPath?: string | 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 {
        mountPointPath?: string | undefined;
        mode?: Mount_Mode | undefined;
        objectStorage?: {
            bucketId?: string | undefined;
            prefix?: string | undefined;
        } | undefined;
        ephemeralDiskSpec?: {
            size?: number | undefined;
            blockSize?: number | undefined;
        } | undefined;
    } & {
        mountPointPath?: 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 Runtime: {
    encode(message: Runtime, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Runtime;
    fromJSON(object: any): Runtime;
    toJSON(message: Runtime): unknown;
    fromPartial<I extends {
        http?: {} | undefined;
        task?: {} | undefined;
    } & {
        http?: ({} & {} & Record<Exclude<keyof I["http"], never>, never>) | undefined;
        task?: ({} & {} & Record<Exclude<keyof I["task"], never>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof Runtime>, never>>(object: I): Runtime;
};
export declare const Runtime_Http: {
    encode(_: Runtime_Http, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Runtime_Http;
    fromJSON(_: any): Runtime_Http;
    toJSON(_: Runtime_Http): unknown;
    fromPartial<I extends {} & {} & Record<Exclude<keyof I, never>, never>>(_: I): Runtime_Http;
};
export declare const Runtime_Task: {
    encode(_: Runtime_Task, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Runtime_Task;
    fromJSON(_: any): Runtime_Task;
    toJSON(_: Runtime_Task): unknown;
    fromPartial<I extends {} & {} & Record<Exclude<keyof I, never>, never>>(_: I): Runtime_Task;
};
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 {};
