/// <reference types="node" />
import { ChannelCredentials, ChannelOptions, UntypedServiceImplementation, handleUnaryCall, Client, ClientUnaryCall, Metadata, CallOptions, ServiceError } from '@grpc/grpc-js';
import _m0 from 'protobufjs/minimal';
import { Project_Settings, Project_Limits, Project } from '../../../../yandex/cloud/datasphere/v2/project';
import { FieldMask } from '../../../../google/protobuf/field_mask';
import { ResourceType } from '../../../../yandex/cloud/datasphere/v2/resource_types';
import { Restriction, GetRestrictionsMetaResponse, RestrictionsResponse } from '../../../../yandex/cloud/datasphere/v2/restrictions';
import { Operation } from '../../../../yandex/cloud/operation/operation';
import { ListAccessBindingsRequest, ListAccessBindingsResponse, SetAccessBindingsRequest, UpdateAccessBindingsRequest } from '../../../../yandex/cloud/access/access';
import { Empty } from '../../../../google/protobuf/empty';
export declare const protobufPackage = "yandex.cloud.datasphere.v2";
export declare enum ExecutionStatus {
    EXECUTION_STATUS_UNSPECIFIED = 0,
    /** OK - Execution finished successfully. */
    OK = 1,
    /** ERROR - Execution ended with error. */
    ERROR = 2,
    /** ABORTED - Execution was aborted. */
    ABORTED = 3,
    UNRECOGNIZED = -1
}
export declare function executionStatusFromJSON(object: any): ExecutionStatus;
export declare function executionStatusToJSON(object: ExecutionStatus): string;
export interface CreateProjectRequest {
    /** ID of the community to create a project in. */
    communityId: string;
    /** Name of the project. 0-63 characters long. */
    name: string;
    /** Description of the project. 0-256 characters long. */
    description: string;
    /** Labels of the project. */
    labels: {
        [key: string]: string;
    };
    /** Settings of the project. */
    settings?: Project_Settings;
    /** Limits of the project. */
    limits?: Project_Limits;
}
export interface CreateProjectRequest_LabelsEntry {
    key: string;
    value: string;
}
export interface CreateProjectMetadata {
    /** ID of the project that is being created. */
    projectId: string;
}
export interface UpdateProjectRequest {
    /**
     * ID of the Project resource to update.
     * To get the project ID use a [ProjectService.List] request.
     */
    projectId: string;
    /** Field mask that specifies which fields of the Project resource are going to be updated. */
    updateMask?: FieldMask;
    /** Name of the project. 0-63 characters long. */
    name: string;
    /** Description of the project. 0-256 characters long. */
    description: string;
    /** Labels of the project. */
    labels: {
        [key: string]: string;
    };
    /** Settings of the project. */
    settings?: Project_Settings;
    /** Limits of the project. */
    limits?: Project_Limits;
}
export interface UpdateProjectRequest_LabelsEntry {
    key: string;
    value: string;
}
export interface UpdateProjectMetadata {
    /** ID of the project that is being updated. */
    projectId: string;
}
export interface DeleteProjectRequest {
    /**
     * ID of the Project resource to delete.
     * To get the project ID use a [ProjectService.List] request.
     */
    projectId: string;
}
export interface DeleteProjectMetadata {
    /** ID of the project that is being deleted. */
    projectId: string;
}
export interface OpenProjectRequest {
    /**
     * ID of the Project resource to open.
     * To get the project ID use a [ProjectService.List] request.
     */
    projectId: string;
}
export interface OpenProjectMetadata {
    /** ID of the project that is being opened. */
    projectId: string;
    /** Project opening status. */
    status: OpenProjectMetadata_OpenProjectStatus;
}
export declare enum OpenProjectMetadata_OpenProjectStatus {
    OPEN_PROJECT_STATUS_UNSPECIFIED = 0,
    /** OPEN_PROJECT_STATUS_CLOSING_IDE - Closing previous IDE instance. */
    OPEN_PROJECT_STATUS_CLOSING_IDE = 1,
    /** OPEN_PROJECT_STATUS_UNZIPPING_PROJECT - Unzipping project. */
    OPEN_PROJECT_STATUS_UNZIPPING_PROJECT = 2,
    /** OPEN_PROJECT_STATUS_ALLOCATING_VM - Allocating VM for the project. */
    OPEN_PROJECT_STATUS_ALLOCATING_VM = 3,
    /** OPEN_PROJECT_STATUS_ALLOCATING_RESOURCES - Allocating resources for the project. */
    OPEN_PROJECT_STATUS_ALLOCATING_RESOURCES = 4,
    /** OPEN_PROJECT_STATUS_STARTING_IDE - Starting IDE. */
    OPEN_PROJECT_STATUS_STARTING_IDE = 5,
    /** OPEN_PROJECT_STATUS_UNKNOWN - Unknown open project status. */
    OPEN_PROJECT_STATUS_UNKNOWN = 7,
    UNRECOGNIZED = -1
}
export declare function openProjectMetadata_OpenProjectStatusFromJSON(object: any): OpenProjectMetadata_OpenProjectStatus;
export declare function openProjectMetadata_OpenProjectStatusToJSON(object: OpenProjectMetadata_OpenProjectStatus): string;
export interface OpenProjectResponse {
    /**
     * URL of the project that is being opened.
     * Make GET request to [project_url] with sessionToken query parameter equals to [session_token]
     * or POST request to [project_url] with sessionToken body parameter equals to [session_token]
     * to fetch DataSphere web interface.
     */
    projectUrl: string;
    /** Session token of the project that is being opened. */
    sessionToken: string;
}
export interface GetProjectRequest {
    /**
     * ID of the Project resource to return.
     * To get the project ID use a [ProjectService.List] request.
     */
    projectId: string;
}
export interface ListProjectsRequest {
    /** ID of the community to list projects in. */
    communityId: string;
    /**
     * The maximum number of results per page to return. If the number of available
     * results is larger than [page_size],
     * the service returns a [ListProjectsResponse.next_page_token]
     * that can be used to get the next page of results in subsequent list requests.
     */
    pageSize: number;
    /**
     * Page token. To get the next page of results, set [page_token] to the
     * [ListProjectsResponse.next_page_token] returned by a previous list request.
     */
    pageToken: string;
    /**
     * Name pattern to filter projects that are returned.
     * Only projects with names matching the pattern will be returned.
     */
    projectNamePattern: string;
    /**
     * User ID to filter projects that are returned.
     * Only projects that are owned by specified user will be returned.
     */
    ownedById: string;
}
export interface ListProjectsResponse {
    /** List of Project resources. */
    projects: Project[];
    /**
     * This token allows you to get the next page of results for list requests. If the number of results
     * is larger than [ListProjectsRequest.page_size], use
     * the [next_page_token] as the value
     * for the [ListProjectsRequest.page_token] query parameter
     * in the next list request. Each subsequent list request will have its own
     * [next_page_token] to continue paging through the results.
     */
    nextPageToken: string;
}
export interface GetUnitBalanceRequest {
    /** ID of the project to return the unit balance for. */
    projectId: string;
}
export interface GetUnitBalanceResponse {
    /** The number of units available to the project. */
    unitBalance?: number;
}
export interface SetUnitBalanceRequest {
    /** ID of the project to set the unit balance for. */
    projectId: string;
    /** The number of units available to the project. */
    unitBalance?: number;
}
export interface SetUnitBalanceMetadata {
    /** ID of the project which unit balance is set. */
    projectId: string;
}
export interface ProjectExecutionRequest {
    /** ID of the project to execute notebook/cell in. */
    projectId: string;
    /**
     * The path to the executable notebook in the project storage. The maximum string length is 200 characters.
     *
     * To get the path, right-click on the notebook in JupyterLab and select `Copy path`.
     */
    notebookId: string | undefined;
    /**
     * ID of the cell to execute.
     * Deprecated
     *
     * @deprecated
     */
    cellId: string | undefined;
    /** Values of input variables. Input variables will be available in the project as environment variables. */
    inputVariables?: {
        [key: string]: any;
    };
    /** Names of output variables. */
    outputVariableNames: string[];
    /** Specification of the VM */
    spec: string;
    /** ID of the Spark Connector */
    sparkConnectorId: string;
}
export interface ProjectExecutionMetadata {
    /** ID of the project in which notebook is being executed. */
    projectId: string;
    /** ID of the notebook that is being executed */
    notebookId: string | undefined;
    /** ID of the cell that is being executed */
    cellId: string | undefined;
}
export interface ProjectExecutionResponse {
    /** Execution final status. */
    executionStatus: ExecutionStatus;
}
export interface SetProjectAccessBindingsMetadata {
    /** ID of the project which access bindings are set. */
    projectId: string;
}
export interface UpdateProjectAccessBindingsMetadata {
    /** ID of the project which access bindings are updated. */
    projectId: string;
}
export interface AddResourceToProjectRequest {
    projectId: string;
    resourceType: ResourceType;
    resourceId: string;
}
export interface RemoveResourceFromProjectRequest {
    projectId: string;
    resourceType: ResourceType;
    resourceId: string;
}
export interface GetProjectRestrictionsRequest {
    /** ID of the project. */
    projectId: string;
}
export interface SetProjectRestrictionsRequest {
    /** ID of the project. */
    projectId: string;
    /** List of restrictions to set. */
    restrictions: Restriction[];
}
export interface ResizeProjectDiskRequest {
    /** ID of the project. */
    projectId: string;
    /** Set new size project disk in gigabytes. */
    newDiskSizeGb: number;
}
export interface ResizeProjectDiskMetadata {
    /** ID of the project which resized project disk. */
    projectId: string;
    /** Old size project disk in gigabytes. */
    oldDiskSizeGb: number;
    /** New size project disk in gigabytes. */
    newDiskSizeGb: number;
}
export interface DiskInfo {
    /** ID of the project. */
    projectId: string;
    /** Project disk size in gigabytes. */
    diskSizeGb: number;
    /** Used project disk in gigabytes. */
    diskUsedGb: number;
    /** Detailed information about the project disk. */
    detailedUsage?: DiskInfo_DetailedDiskInfo;
}
export interface DiskInfo_DetailedDiskInfo {
    /** Used project disk for user data in gigabytes. */
    userDataGb: number;
    /** Used project disk for packages in gigabytes. */
    packagesGb: number;
    /** Used project disk for system data in gigabytes. */
    systemDataGb: number;
    /** Free space project disk in gigabytes. */
    freeSpaceGb: number;
}
export declare const CreateProjectRequest: {
    encode(message: CreateProjectRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateProjectRequest;
    fromJSON(object: any): CreateProjectRequest;
    toJSON(message: CreateProjectRequest): unknown;
    fromPartial<I extends {
        communityId?: string | undefined;
        name?: string | undefined;
        description?: string | undefined;
        labels?: {
            [x: string]: string | undefined;
        } | undefined;
        settings?: {
            serviceAccountId?: string | undefined;
            subnetId?: string | undefined;
            dataProcClusterId?: string | undefined;
            securityGroupIds?: string[] | undefined;
            earlyAccess?: boolean | undefined;
            ide?: import("../../../../yandex/cloud/datasphere/v2/project").Project_Settings_Ide | undefined;
            defaultFolderId?: string | undefined;
            staleExecTimeoutMode?: import("../../../../yandex/cloud/datasphere/v2/project").Project_Settings_StaleExecutionTimeoutMode | undefined;
            vmInactivityTimeout?: {
                seconds?: number | undefined;
                nanos?: number | undefined;
            } | undefined;
            defaultDedicatedSpec?: string | undefined;
        } | undefined;
        limits?: {
            maxUnitsPerHour?: number | undefined;
            maxUnitsPerExecution?: number | undefined;
        } | undefined;
    } & {
        communityId?: string | 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;
        settings?: ({
            serviceAccountId?: string | undefined;
            subnetId?: string | undefined;
            dataProcClusterId?: string | undefined;
            securityGroupIds?: string[] | undefined;
            earlyAccess?: boolean | undefined;
            ide?: import("../../../../yandex/cloud/datasphere/v2/project").Project_Settings_Ide | undefined;
            defaultFolderId?: string | undefined;
            staleExecTimeoutMode?: import("../../../../yandex/cloud/datasphere/v2/project").Project_Settings_StaleExecutionTimeoutMode | undefined;
            vmInactivityTimeout?: {
                seconds?: number | undefined;
                nanos?: number | undefined;
            } | undefined;
            defaultDedicatedSpec?: string | undefined;
        } & {
            serviceAccountId?: string | undefined;
            subnetId?: string | undefined;
            dataProcClusterId?: string | undefined;
            securityGroupIds?: (string[] & string[] & Record<Exclude<keyof I["settings"]["securityGroupIds"], keyof string[]>, never>) | undefined;
            earlyAccess?: boolean | undefined;
            ide?: import("../../../../yandex/cloud/datasphere/v2/project").Project_Settings_Ide | undefined;
            defaultFolderId?: string | undefined;
            staleExecTimeoutMode?: import("../../../../yandex/cloud/datasphere/v2/project").Project_Settings_StaleExecutionTimeoutMode | undefined;
            vmInactivityTimeout?: ({
                seconds?: number | undefined;
                nanos?: number | undefined;
            } & {
                seconds?: number | undefined;
                nanos?: number | undefined;
            } & Record<Exclude<keyof I["settings"]["vmInactivityTimeout"], keyof import("../../../../google/protobuf/duration").Duration>, never>) | undefined;
            defaultDedicatedSpec?: string | undefined;
        } & Record<Exclude<keyof I["settings"], keyof Project_Settings>, never>) | undefined;
        limits?: ({
            maxUnitsPerHour?: number | undefined;
            maxUnitsPerExecution?: number | undefined;
        } & {
            maxUnitsPerHour?: number | undefined;
            maxUnitsPerExecution?: number | undefined;
        } & Record<Exclude<keyof I["limits"], keyof Project_Limits>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof CreateProjectRequest>, never>>(object: I): CreateProjectRequest;
};
export declare const CreateProjectRequest_LabelsEntry: {
    encode(message: CreateProjectRequest_LabelsEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateProjectRequest_LabelsEntry;
    fromJSON(object: any): CreateProjectRequest_LabelsEntry;
    toJSON(message: CreateProjectRequest_LabelsEntry): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof CreateProjectRequest_LabelsEntry>, never>>(object: I): CreateProjectRequest_LabelsEntry;
};
export declare const CreateProjectMetadata: {
    encode(message: CreateProjectMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateProjectMetadata;
    fromJSON(object: any): CreateProjectMetadata;
    toJSON(message: CreateProjectMetadata): unknown;
    fromPartial<I extends {
        projectId?: string | undefined;
    } & {
        projectId?: string | undefined;
    } & Record<Exclude<keyof I, "projectId">, never>>(object: I): CreateProjectMetadata;
};
export declare const UpdateProjectRequest: {
    encode(message: UpdateProjectRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateProjectRequest;
    fromJSON(object: any): UpdateProjectRequest;
    toJSON(message: UpdateProjectRequest): unknown;
    fromPartial<I extends {
        projectId?: string | undefined;
        updateMask?: {
            paths?: string[] | undefined;
        } | undefined;
        name?: string | undefined;
        description?: string | undefined;
        labels?: {
            [x: string]: string | undefined;
        } | undefined;
        settings?: {
            serviceAccountId?: string | undefined;
            subnetId?: string | undefined;
            dataProcClusterId?: string | undefined;
            securityGroupIds?: string[] | undefined;
            earlyAccess?: boolean | undefined;
            ide?: import("../../../../yandex/cloud/datasphere/v2/project").Project_Settings_Ide | undefined;
            defaultFolderId?: string | undefined;
            staleExecTimeoutMode?: import("../../../../yandex/cloud/datasphere/v2/project").Project_Settings_StaleExecutionTimeoutMode | undefined;
            vmInactivityTimeout?: {
                seconds?: number | undefined;
                nanos?: number | undefined;
            } | undefined;
            defaultDedicatedSpec?: string | undefined;
        } | undefined;
        limits?: {
            maxUnitsPerHour?: number | undefined;
            maxUnitsPerExecution?: number | undefined;
        } | undefined;
    } & {
        projectId?: string | undefined;
        updateMask?: ({
            paths?: string[] | undefined;
        } & {
            paths?: (string[] & string[] & Record<Exclude<keyof I["updateMask"]["paths"], keyof string[]>, never>) | undefined;
        } & Record<Exclude<keyof I["updateMask"], "paths">, never>) | 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;
        settings?: ({
            serviceAccountId?: string | undefined;
            subnetId?: string | undefined;
            dataProcClusterId?: string | undefined;
            securityGroupIds?: string[] | undefined;
            earlyAccess?: boolean | undefined;
            ide?: import("../../../../yandex/cloud/datasphere/v2/project").Project_Settings_Ide | undefined;
            defaultFolderId?: string | undefined;
            staleExecTimeoutMode?: import("../../../../yandex/cloud/datasphere/v2/project").Project_Settings_StaleExecutionTimeoutMode | undefined;
            vmInactivityTimeout?: {
                seconds?: number | undefined;
                nanos?: number | undefined;
            } | undefined;
            defaultDedicatedSpec?: string | undefined;
        } & {
            serviceAccountId?: string | undefined;
            subnetId?: string | undefined;
            dataProcClusterId?: string | undefined;
            securityGroupIds?: (string[] & string[] & Record<Exclude<keyof I["settings"]["securityGroupIds"], keyof string[]>, never>) | undefined;
            earlyAccess?: boolean | undefined;
            ide?: import("../../../../yandex/cloud/datasphere/v2/project").Project_Settings_Ide | undefined;
            defaultFolderId?: string | undefined;
            staleExecTimeoutMode?: import("../../../../yandex/cloud/datasphere/v2/project").Project_Settings_StaleExecutionTimeoutMode | undefined;
            vmInactivityTimeout?: ({
                seconds?: number | undefined;
                nanos?: number | undefined;
            } & {
                seconds?: number | undefined;
                nanos?: number | undefined;
            } & Record<Exclude<keyof I["settings"]["vmInactivityTimeout"], keyof import("../../../../google/protobuf/duration").Duration>, never>) | undefined;
            defaultDedicatedSpec?: string | undefined;
        } & Record<Exclude<keyof I["settings"], keyof Project_Settings>, never>) | undefined;
        limits?: ({
            maxUnitsPerHour?: number | undefined;
            maxUnitsPerExecution?: number | undefined;
        } & {
            maxUnitsPerHour?: number | undefined;
            maxUnitsPerExecution?: number | undefined;
        } & Record<Exclude<keyof I["limits"], keyof Project_Limits>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof UpdateProjectRequest>, never>>(object: I): UpdateProjectRequest;
};
export declare const UpdateProjectRequest_LabelsEntry: {
    encode(message: UpdateProjectRequest_LabelsEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateProjectRequest_LabelsEntry;
    fromJSON(object: any): UpdateProjectRequest_LabelsEntry;
    toJSON(message: UpdateProjectRequest_LabelsEntry): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof UpdateProjectRequest_LabelsEntry>, never>>(object: I): UpdateProjectRequest_LabelsEntry;
};
export declare const UpdateProjectMetadata: {
    encode(message: UpdateProjectMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateProjectMetadata;
    fromJSON(object: any): UpdateProjectMetadata;
    toJSON(message: UpdateProjectMetadata): unknown;
    fromPartial<I extends {
        projectId?: string | undefined;
    } & {
        projectId?: string | undefined;
    } & Record<Exclude<keyof I, "projectId">, never>>(object: I): UpdateProjectMetadata;
};
export declare const DeleteProjectRequest: {
    encode(message: DeleteProjectRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteProjectRequest;
    fromJSON(object: any): DeleteProjectRequest;
    toJSON(message: DeleteProjectRequest): unknown;
    fromPartial<I extends {
        projectId?: string | undefined;
    } & {
        projectId?: string | undefined;
    } & Record<Exclude<keyof I, "projectId">, never>>(object: I): DeleteProjectRequest;
};
export declare const DeleteProjectMetadata: {
    encode(message: DeleteProjectMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteProjectMetadata;
    fromJSON(object: any): DeleteProjectMetadata;
    toJSON(message: DeleteProjectMetadata): unknown;
    fromPartial<I extends {
        projectId?: string | undefined;
    } & {
        projectId?: string | undefined;
    } & Record<Exclude<keyof I, "projectId">, never>>(object: I): DeleteProjectMetadata;
};
export declare const OpenProjectRequest: {
    encode(message: OpenProjectRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): OpenProjectRequest;
    fromJSON(object: any): OpenProjectRequest;
    toJSON(message: OpenProjectRequest): unknown;
    fromPartial<I extends {
        projectId?: string | undefined;
    } & {
        projectId?: string | undefined;
    } & Record<Exclude<keyof I, "projectId">, never>>(object: I): OpenProjectRequest;
};
export declare const OpenProjectMetadata: {
    encode(message: OpenProjectMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): OpenProjectMetadata;
    fromJSON(object: any): OpenProjectMetadata;
    toJSON(message: OpenProjectMetadata): unknown;
    fromPartial<I extends {
        projectId?: string | undefined;
        status?: OpenProjectMetadata_OpenProjectStatus | undefined;
    } & {
        projectId?: string | undefined;
        status?: OpenProjectMetadata_OpenProjectStatus | undefined;
    } & Record<Exclude<keyof I, keyof OpenProjectMetadata>, never>>(object: I): OpenProjectMetadata;
};
export declare const OpenProjectResponse: {
    encode(message: OpenProjectResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): OpenProjectResponse;
    fromJSON(object: any): OpenProjectResponse;
    toJSON(message: OpenProjectResponse): unknown;
    fromPartial<I extends {
        projectUrl?: string | undefined;
        sessionToken?: string | undefined;
    } & {
        projectUrl?: string | undefined;
        sessionToken?: string | undefined;
    } & Record<Exclude<keyof I, keyof OpenProjectResponse>, never>>(object: I): OpenProjectResponse;
};
export declare const GetProjectRequest: {
    encode(message: GetProjectRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetProjectRequest;
    fromJSON(object: any): GetProjectRequest;
    toJSON(message: GetProjectRequest): unknown;
    fromPartial<I extends {
        projectId?: string | undefined;
    } & {
        projectId?: string | undefined;
    } & Record<Exclude<keyof I, "projectId">, never>>(object: I): GetProjectRequest;
};
export declare const ListProjectsRequest: {
    encode(message: ListProjectsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListProjectsRequest;
    fromJSON(object: any): ListProjectsRequest;
    toJSON(message: ListProjectsRequest): unknown;
    fromPartial<I extends {
        communityId?: string | undefined;
        pageSize?: number | undefined;
        pageToken?: string | undefined;
        projectNamePattern?: string | undefined;
        ownedById?: string | undefined;
    } & {
        communityId?: string | undefined;
        pageSize?: number | undefined;
        pageToken?: string | undefined;
        projectNamePattern?: string | undefined;
        ownedById?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListProjectsRequest>, never>>(object: I): ListProjectsRequest;
};
export declare const ListProjectsResponse: {
    encode(message: ListProjectsResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListProjectsResponse;
    fromJSON(object: any): ListProjectsResponse;
    toJSON(message: ListProjectsResponse): unknown;
    fromPartial<I extends {
        projects?: {
            id?: string | undefined;
            createdAt?: Date | undefined;
            name?: string | undefined;
            description?: string | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
            createdById?: string | undefined;
            settings?: {
                serviceAccountId?: string | undefined;
                subnetId?: string | undefined;
                dataProcClusterId?: string | undefined;
                securityGroupIds?: string[] | undefined;
                earlyAccess?: boolean | undefined;
                ide?: import("../../../../yandex/cloud/datasphere/v2/project").Project_Settings_Ide | undefined;
                defaultFolderId?: string | undefined;
                staleExecTimeoutMode?: import("../../../../yandex/cloud/datasphere/v2/project").Project_Settings_StaleExecutionTimeoutMode | undefined;
                vmInactivityTimeout?: {
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } | undefined;
                defaultDedicatedSpec?: string | undefined;
            } | undefined;
            limits?: {
                maxUnitsPerHour?: number | undefined;
                maxUnitsPerExecution?: number | undefined;
            } | undefined;
            communityId?: string | undefined;
        }[] | undefined;
        nextPageToken?: string | undefined;
    } & {
        projects?: ({
            id?: string | undefined;
            createdAt?: Date | undefined;
            name?: string | undefined;
            description?: string | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
            createdById?: string | undefined;
            settings?: {
                serviceAccountId?: string | undefined;
                subnetId?: string | undefined;
                dataProcClusterId?: string | undefined;
                securityGroupIds?: string[] | undefined;
                earlyAccess?: boolean | undefined;
                ide?: import("../../../../yandex/cloud/datasphere/v2/project").Project_Settings_Ide | undefined;
                defaultFolderId?: string | undefined;
                staleExecTimeoutMode?: import("../../../../yandex/cloud/datasphere/v2/project").Project_Settings_StaleExecutionTimeoutMode | undefined;
                vmInactivityTimeout?: {
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } | undefined;
                defaultDedicatedSpec?: string | undefined;
            } | undefined;
            limits?: {
                maxUnitsPerHour?: number | undefined;
                maxUnitsPerExecution?: number | undefined;
            } | undefined;
            communityId?: string | undefined;
        }[] & ({
            id?: string | undefined;
            createdAt?: Date | undefined;
            name?: string | undefined;
            description?: string | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
            createdById?: string | undefined;
            settings?: {
                serviceAccountId?: string | undefined;
                subnetId?: string | undefined;
                dataProcClusterId?: string | undefined;
                securityGroupIds?: string[] | undefined;
                earlyAccess?: boolean | undefined;
                ide?: import("../../../../yandex/cloud/datasphere/v2/project").Project_Settings_Ide | undefined;
                defaultFolderId?: string | undefined;
                staleExecTimeoutMode?: import("../../../../yandex/cloud/datasphere/v2/project").Project_Settings_StaleExecutionTimeoutMode | undefined;
                vmInactivityTimeout?: {
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } | undefined;
                defaultDedicatedSpec?: string | undefined;
            } | undefined;
            limits?: {
                maxUnitsPerHour?: number | undefined;
                maxUnitsPerExecution?: number | undefined;
            } | undefined;
            communityId?: string | undefined;
        } & {
            id?: string | undefined;
            createdAt?: Date | undefined;
            name?: string | undefined;
            description?: string | undefined;
            labels?: ({
                [x: string]: string | undefined;
            } & {
                [x: string]: string | undefined;
            } & Record<Exclude<keyof I["projects"][number]["labels"], string | number>, never>) | undefined;
            createdById?: string | undefined;
            settings?: ({
                serviceAccountId?: string | undefined;
                subnetId?: string | undefined;
                dataProcClusterId?: string | undefined;
                securityGroupIds?: string[] | undefined;
                earlyAccess?: boolean | undefined;
                ide?: import("../../../../yandex/cloud/datasphere/v2/project").Project_Settings_Ide | undefined;
                defaultFolderId?: string | undefined;
                staleExecTimeoutMode?: import("../../../../yandex/cloud/datasphere/v2/project").Project_Settings_StaleExecutionTimeoutMode | undefined;
                vmInactivityTimeout?: {
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } | undefined;
                defaultDedicatedSpec?: string | undefined;
            } & {
                serviceAccountId?: string | undefined;
                subnetId?: string | undefined;
                dataProcClusterId?: string | undefined;
                securityGroupIds?: (string[] & string[] & Record<Exclude<keyof I["projects"][number]["settings"]["securityGroupIds"], keyof string[]>, never>) | undefined;
                earlyAccess?: boolean | undefined;
                ide?: import("../../../../yandex/cloud/datasphere/v2/project").Project_Settings_Ide | undefined;
                defaultFolderId?: string | undefined;
                staleExecTimeoutMode?: import("../../../../yandex/cloud/datasphere/v2/project").Project_Settings_StaleExecutionTimeoutMode | undefined;
                vmInactivityTimeout?: ({
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } & {
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } & Record<Exclude<keyof I["projects"][number]["settings"]["vmInactivityTimeout"], keyof import("../../../../google/protobuf/duration").Duration>, never>) | undefined;
                defaultDedicatedSpec?: string | undefined;
            } & Record<Exclude<keyof I["projects"][number]["settings"], keyof Project_Settings>, never>) | undefined;
            limits?: ({
                maxUnitsPerHour?: number | undefined;
                maxUnitsPerExecution?: number | undefined;
            } & {
                maxUnitsPerHour?: number | undefined;
                maxUnitsPerExecution?: number | undefined;
            } & Record<Exclude<keyof I["projects"][number]["limits"], keyof Project_Limits>, never>) | undefined;
            communityId?: string | undefined;
        } & Record<Exclude<keyof I["projects"][number], keyof Project>, never>)[] & Record<Exclude<keyof I["projects"], keyof {
            id?: string | undefined;
            createdAt?: Date | undefined;
            name?: string | undefined;
            description?: string | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
            createdById?: string | undefined;
            settings?: {
                serviceAccountId?: string | undefined;
                subnetId?: string | undefined;
                dataProcClusterId?: string | undefined;
                securityGroupIds?: string[] | undefined;
                earlyAccess?: boolean | undefined;
                ide?: import("../../../../yandex/cloud/datasphere/v2/project").Project_Settings_Ide | undefined;
                defaultFolderId?: string | undefined;
                staleExecTimeoutMode?: import("../../../../yandex/cloud/datasphere/v2/project").Project_Settings_StaleExecutionTimeoutMode | undefined;
                vmInactivityTimeout?: {
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } | undefined;
                defaultDedicatedSpec?: string | undefined;
            } | undefined;
            limits?: {
                maxUnitsPerHour?: number | undefined;
                maxUnitsPerExecution?: number | undefined;
            } | undefined;
            communityId?: string | undefined;
        }[]>, never>) | undefined;
        nextPageToken?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListProjectsResponse>, never>>(object: I): ListProjectsResponse;
};
export declare const GetUnitBalanceRequest: {
    encode(message: GetUnitBalanceRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetUnitBalanceRequest;
    fromJSON(object: any): GetUnitBalanceRequest;
    toJSON(message: GetUnitBalanceRequest): unknown;
    fromPartial<I extends {
        projectId?: string | undefined;
    } & {
        projectId?: string | undefined;
    } & Record<Exclude<keyof I, "projectId">, never>>(object: I): GetUnitBalanceRequest;
};
export declare const GetUnitBalanceResponse: {
    encode(message: GetUnitBalanceResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetUnitBalanceResponse;
    fromJSON(object: any): GetUnitBalanceResponse;
    toJSON(message: GetUnitBalanceResponse): unknown;
    fromPartial<I extends {
        unitBalance?: number | undefined;
    } & {
        unitBalance?: number | undefined;
    } & Record<Exclude<keyof I, "unitBalance">, never>>(object: I): GetUnitBalanceResponse;
};
export declare const SetUnitBalanceRequest: {
    encode(message: SetUnitBalanceRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SetUnitBalanceRequest;
    fromJSON(object: any): SetUnitBalanceRequest;
    toJSON(message: SetUnitBalanceRequest): unknown;
    fromPartial<I extends {
        projectId?: string | undefined;
        unitBalance?: number | undefined;
    } & {
        projectId?: string | undefined;
        unitBalance?: number | undefined;
    } & Record<Exclude<keyof I, keyof SetUnitBalanceRequest>, never>>(object: I): SetUnitBalanceRequest;
};
export declare const SetUnitBalanceMetadata: {
    encode(message: SetUnitBalanceMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SetUnitBalanceMetadata;
    fromJSON(object: any): SetUnitBalanceMetadata;
    toJSON(message: SetUnitBalanceMetadata): unknown;
    fromPartial<I extends {
        projectId?: string | undefined;
    } & {
        projectId?: string | undefined;
    } & Record<Exclude<keyof I, "projectId">, never>>(object: I): SetUnitBalanceMetadata;
};
export declare const ProjectExecutionRequest: {
    encode(message: ProjectExecutionRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ProjectExecutionRequest;
    fromJSON(object: any): ProjectExecutionRequest;
    toJSON(message: ProjectExecutionRequest): unknown;
    fromPartial<I extends {
        projectId?: string | undefined;
        notebookId?: string | undefined;
        cellId?: string | undefined;
        inputVariables?: {
            [x: string]: any;
        } | undefined;
        outputVariableNames?: string[] | undefined;
        spec?: string | undefined;
        sparkConnectorId?: string | undefined;
    } & {
        projectId?: string | undefined;
        notebookId?: string | undefined;
        cellId?: string | undefined;
        inputVariables?: ({
            [x: string]: any;
        } & {
            [x: string]: any;
        } & Record<Exclude<keyof I["inputVariables"], string | number>, never>) | undefined;
        outputVariableNames?: (string[] & string[] & Record<Exclude<keyof I["outputVariableNames"], keyof string[]>, never>) | undefined;
        spec?: string | undefined;
        sparkConnectorId?: string | undefined;
    } & Record<Exclude<keyof I, keyof ProjectExecutionRequest>, never>>(object: I): ProjectExecutionRequest;
};
export declare const ProjectExecutionMetadata: {
    encode(message: ProjectExecutionMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ProjectExecutionMetadata;
    fromJSON(object: any): ProjectExecutionMetadata;
    toJSON(message: ProjectExecutionMetadata): unknown;
    fromPartial<I extends {
        projectId?: string | undefined;
        notebookId?: string | undefined;
        cellId?: string | undefined;
    } & {
        projectId?: string | undefined;
        notebookId?: string | undefined;
        cellId?: string | undefined;
    } & Record<Exclude<keyof I, keyof ProjectExecutionMetadata>, never>>(object: I): ProjectExecutionMetadata;
};
export declare const ProjectExecutionResponse: {
    encode(message: ProjectExecutionResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ProjectExecutionResponse;
    fromJSON(object: any): ProjectExecutionResponse;
    toJSON(message: ProjectExecutionResponse): unknown;
    fromPartial<I extends {
        executionStatus?: ExecutionStatus | undefined;
    } & {
        executionStatus?: ExecutionStatus | undefined;
    } & Record<Exclude<keyof I, "executionStatus">, never>>(object: I): ProjectExecutionResponse;
};
export declare const SetProjectAccessBindingsMetadata: {
    encode(message: SetProjectAccessBindingsMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SetProjectAccessBindingsMetadata;
    fromJSON(object: any): SetProjectAccessBindingsMetadata;
    toJSON(message: SetProjectAccessBindingsMetadata): unknown;
    fromPartial<I extends {
        projectId?: string | undefined;
    } & {
        projectId?: string | undefined;
    } & Record<Exclude<keyof I, "projectId">, never>>(object: I): SetProjectAccessBindingsMetadata;
};
export declare const UpdateProjectAccessBindingsMetadata: {
    encode(message: UpdateProjectAccessBindingsMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateProjectAccessBindingsMetadata;
    fromJSON(object: any): UpdateProjectAccessBindingsMetadata;
    toJSON(message: UpdateProjectAccessBindingsMetadata): unknown;
    fromPartial<I extends {
        projectId?: string | undefined;
    } & {
        projectId?: string | undefined;
    } & Record<Exclude<keyof I, "projectId">, never>>(object: I): UpdateProjectAccessBindingsMetadata;
};
export declare const AddResourceToProjectRequest: {
    encode(message: AddResourceToProjectRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): AddResourceToProjectRequest;
    fromJSON(object: any): AddResourceToProjectRequest;
    toJSON(message: AddResourceToProjectRequest): unknown;
    fromPartial<I extends {
        projectId?: string | undefined;
        resourceType?: ResourceType | undefined;
        resourceId?: string | undefined;
    } & {
        projectId?: string | undefined;
        resourceType?: ResourceType | undefined;
        resourceId?: string | undefined;
    } & Record<Exclude<keyof I, keyof AddResourceToProjectRequest>, never>>(object: I): AddResourceToProjectRequest;
};
export declare const RemoveResourceFromProjectRequest: {
    encode(message: RemoveResourceFromProjectRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): RemoveResourceFromProjectRequest;
    fromJSON(object: any): RemoveResourceFromProjectRequest;
    toJSON(message: RemoveResourceFromProjectRequest): unknown;
    fromPartial<I extends {
        projectId?: string | undefined;
        resourceType?: ResourceType | undefined;
        resourceId?: string | undefined;
    } & {
        projectId?: string | undefined;
        resourceType?: ResourceType | undefined;
        resourceId?: string | undefined;
    } & Record<Exclude<keyof I, keyof RemoveResourceFromProjectRequest>, never>>(object: I): RemoveResourceFromProjectRequest;
};
export declare const GetProjectRestrictionsRequest: {
    encode(message: GetProjectRestrictionsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetProjectRestrictionsRequest;
    fromJSON(object: any): GetProjectRestrictionsRequest;
    toJSON(message: GetProjectRestrictionsRequest): unknown;
    fromPartial<I extends {
        projectId?: string | undefined;
    } & {
        projectId?: string | undefined;
    } & Record<Exclude<keyof I, "projectId">, never>>(object: I): GetProjectRestrictionsRequest;
};
export declare const SetProjectRestrictionsRequest: {
    encode(message: SetProjectRestrictionsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SetProjectRestrictionsRequest;
    fromJSON(object: any): SetProjectRestrictionsRequest;
    toJSON(message: SetProjectRestrictionsRequest): unknown;
    fromPartial<I extends {
        projectId?: string | undefined;
        restrictions?: {
            name?: string | undefined;
            boolValue?: boolean[] | undefined;
            longValue?: number[] | undefined;
            stringValue?: string[] | undefined;
        }[] | undefined;
    } & {
        projectId?: string | undefined;
        restrictions?: ({
            name?: string | undefined;
            boolValue?: boolean[] | undefined;
            longValue?: number[] | undefined;
            stringValue?: string[] | undefined;
        }[] & ({
            name?: string | undefined;
            boolValue?: boolean[] | undefined;
            longValue?: number[] | undefined;
            stringValue?: string[] | undefined;
        } & {
            name?: string | undefined;
            boolValue?: (boolean[] & boolean[] & Record<Exclude<keyof I["restrictions"][number]["boolValue"], keyof boolean[]>, never>) | undefined;
            longValue?: (number[] & number[] & Record<Exclude<keyof I["restrictions"][number]["longValue"], keyof number[]>, never>) | undefined;
            stringValue?: (string[] & string[] & Record<Exclude<keyof I["restrictions"][number]["stringValue"], keyof string[]>, never>) | undefined;
        } & Record<Exclude<keyof I["restrictions"][number], keyof Restriction>, never>)[] & Record<Exclude<keyof I["restrictions"], keyof {
            name?: string | undefined;
            boolValue?: boolean[] | undefined;
            longValue?: number[] | undefined;
            stringValue?: string[] | undefined;
        }[]>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof SetProjectRestrictionsRequest>, never>>(object: I): SetProjectRestrictionsRequest;
};
export declare const ResizeProjectDiskRequest: {
    encode(message: ResizeProjectDiskRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ResizeProjectDiskRequest;
    fromJSON(object: any): ResizeProjectDiskRequest;
    toJSON(message: ResizeProjectDiskRequest): unknown;
    fromPartial<I extends {
        projectId?: string | undefined;
        newDiskSizeGb?: number | undefined;
    } & {
        projectId?: string | undefined;
        newDiskSizeGb?: number | undefined;
    } & Record<Exclude<keyof I, keyof ResizeProjectDiskRequest>, never>>(object: I): ResizeProjectDiskRequest;
};
export declare const ResizeProjectDiskMetadata: {
    encode(message: ResizeProjectDiskMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ResizeProjectDiskMetadata;
    fromJSON(object: any): ResizeProjectDiskMetadata;
    toJSON(message: ResizeProjectDiskMetadata): unknown;
    fromPartial<I extends {
        projectId?: string | undefined;
        oldDiskSizeGb?: number | undefined;
        newDiskSizeGb?: number | undefined;
    } & {
        projectId?: string | undefined;
        oldDiskSizeGb?: number | undefined;
        newDiskSizeGb?: number | undefined;
    } & Record<Exclude<keyof I, keyof ResizeProjectDiskMetadata>, never>>(object: I): ResizeProjectDiskMetadata;
};
export declare const DiskInfo: {
    encode(message: DiskInfo, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DiskInfo;
    fromJSON(object: any): DiskInfo;
    toJSON(message: DiskInfo): unknown;
    fromPartial<I extends {
        projectId?: string | undefined;
        diskSizeGb?: number | undefined;
        diskUsedGb?: number | undefined;
        detailedUsage?: {
            userDataGb?: number | undefined;
            packagesGb?: number | undefined;
            systemDataGb?: number | undefined;
            freeSpaceGb?: number | undefined;
        } | undefined;
    } & {
        projectId?: string | undefined;
        diskSizeGb?: number | undefined;
        diskUsedGb?: number | undefined;
        detailedUsage?: ({
            userDataGb?: number | undefined;
            packagesGb?: number | undefined;
            systemDataGb?: number | undefined;
            freeSpaceGb?: number | undefined;
        } & {
            userDataGb?: number | undefined;
            packagesGb?: number | undefined;
            systemDataGb?: number | undefined;
            freeSpaceGb?: number | undefined;
        } & Record<Exclude<keyof I["detailedUsage"], keyof DiskInfo_DetailedDiskInfo>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof DiskInfo>, never>>(object: I): DiskInfo;
};
export declare const DiskInfo_DetailedDiskInfo: {
    encode(message: DiskInfo_DetailedDiskInfo, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DiskInfo_DetailedDiskInfo;
    fromJSON(object: any): DiskInfo_DetailedDiskInfo;
    toJSON(message: DiskInfo_DetailedDiskInfo): unknown;
    fromPartial<I extends {
        userDataGb?: number | undefined;
        packagesGb?: number | undefined;
        systemDataGb?: number | undefined;
        freeSpaceGb?: number | undefined;
    } & {
        userDataGb?: number | undefined;
        packagesGb?: number | undefined;
        systemDataGb?: number | undefined;
        freeSpaceGb?: number | undefined;
    } & Record<Exclude<keyof I, keyof DiskInfo_DetailedDiskInfo>, never>>(object: I): DiskInfo_DetailedDiskInfo;
};
/** A set of methods for managing Project resources. */
export declare const ProjectServiceService: {
    /** Creates a project in the specified folder. */
    readonly create: {
        readonly path: "/yandex.cloud.datasphere.v2.ProjectService/Create";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: CreateProjectRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => CreateProjectRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Updates the specified project. */
    readonly update: {
        readonly path: "/yandex.cloud.datasphere.v2.ProjectService/Update";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: UpdateProjectRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => UpdateProjectRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Deletes the specified project. */
    readonly delete: {
        readonly path: "/yandex.cloud.datasphere.v2.ProjectService/Delete";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: DeleteProjectRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => DeleteProjectRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Opens the specified project. */
    readonly open: {
        readonly path: "/yandex.cloud.datasphere.v2.ProjectService/Open";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: OpenProjectRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => OpenProjectRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Returns the specified project. */
    readonly get: {
        readonly path: "/yandex.cloud.datasphere.v2.ProjectService/Get";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: GetProjectRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => GetProjectRequest;
        readonly responseSerialize: (value: Project) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Project;
    };
    /** Lists projects for the specified community. */
    readonly list: {
        readonly path: "/yandex.cloud.datasphere.v2.ProjectService/List";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: ListProjectsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ListProjectsRequest;
        readonly responseSerialize: (value: ListProjectsResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => ListProjectsResponse;
    };
    /** Returns the unit balance of the specified project. */
    readonly getUnitBalance: {
        readonly path: "/yandex.cloud.datasphere.v2.ProjectService/GetUnitBalance";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: GetUnitBalanceRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => GetUnitBalanceRequest;
        readonly responseSerialize: (value: GetUnitBalanceResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => GetUnitBalanceResponse;
    };
    /** Sets the unit balance of the specified project. */
    readonly setUnitBalance: {
        readonly path: "/yandex.cloud.datasphere.v2.ProjectService/SetUnitBalance";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: SetUnitBalanceRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => SetUnitBalanceRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Executes code of the specified notebook using configuration defined in the project settings. If the default project configuration is not specified, `c1.4` is used. */
    readonly execute: {
        readonly path: "/yandex.cloud.datasphere.v2.ProjectService/Execute";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: ProjectExecutionRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ProjectExecutionRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Lists access bindings for the project. */
    readonly listAccessBindings: {
        readonly path: "/yandex.cloud.datasphere.v2.ProjectService/ListAccessBindings";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: ListAccessBindingsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ListAccessBindingsRequest;
        readonly responseSerialize: (value: ListAccessBindingsResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => ListAccessBindingsResponse;
    };
    /** Sets access bindings for the project. */
    readonly setAccessBindings: {
        readonly path: "/yandex.cloud.datasphere.v2.ProjectService/SetAccessBindings";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: SetAccessBindingsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => SetAccessBindingsRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Updates access bindings for the project. */
    readonly updateAccessBindings: {
        readonly path: "/yandex.cloud.datasphere.v2.ProjectService/UpdateAccessBindings";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: UpdateAccessBindingsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => UpdateAccessBindingsRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Adds shared resource to project */
    readonly addResource: {
        readonly path: "/yandex.cloud.datasphere.v2.ProjectService/AddResource";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: AddResourceToProjectRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => AddResourceToProjectRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Removes shared resource from project */
    readonly removeResource: {
        readonly path: "/yandex.cloud.datasphere.v2.ProjectService/RemoveResource";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: RemoveResourceFromProjectRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => RemoveResourceFromProjectRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Resizes project disk */
    readonly resizeDisk: {
        readonly path: "/yandex.cloud.datasphere.v2.ProjectService/ResizeDisk";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: ResizeProjectDiskRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ResizeProjectDiskRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Get meta information about available restrictions. */
    readonly getRestrictionsMeta: {
        readonly path: "/yandex.cloud.datasphere.v2.ProjectService/GetRestrictionsMeta";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: Empty) => Buffer;
        readonly requestDeserialize: (value: Buffer) => Empty;
        readonly responseSerialize: (value: GetRestrictionsMetaResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => GetRestrictionsMetaResponse;
    };
    /** Get current project restrictions. */
    readonly getRestrictions: {
        readonly path: "/yandex.cloud.datasphere.v2.ProjectService/GetRestrictions";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: GetProjectRestrictionsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => GetProjectRestrictionsRequest;
        readonly responseSerialize: (value: RestrictionsResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => RestrictionsResponse;
    };
    /** Set project restrictions. */
    readonly setRestrictions: {
        readonly path: "/yandex.cloud.datasphere.v2.ProjectService/SetRestrictions";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: SetProjectRestrictionsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => SetProjectRestrictionsRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
};
export interface ProjectServiceServer extends UntypedServiceImplementation {
    /** Creates a project in the specified folder. */
    create: handleUnaryCall<CreateProjectRequest, Operation>;
    /** Updates the specified project. */
    update: handleUnaryCall<UpdateProjectRequest, Operation>;
    /** Deletes the specified project. */
    delete: handleUnaryCall<DeleteProjectRequest, Operation>;
    /** Opens the specified project. */
    open: handleUnaryCall<OpenProjectRequest, Operation>;
    /** Returns the specified project. */
    get: handleUnaryCall<GetProjectRequest, Project>;
    /** Lists projects for the specified community. */
    list: handleUnaryCall<ListProjectsRequest, ListProjectsResponse>;
    /** Returns the unit balance of the specified project. */
    getUnitBalance: handleUnaryCall<GetUnitBalanceRequest, GetUnitBalanceResponse>;
    /** Sets the unit balance of the specified project. */
    setUnitBalance: handleUnaryCall<SetUnitBalanceRequest, Operation>;
    /** Executes code of the specified notebook using configuration defined in the project settings. If the default project configuration is not specified, `c1.4` is used. */
    execute: handleUnaryCall<ProjectExecutionRequest, Operation>;
    /** Lists access bindings for the project. */
    listAccessBindings: handleUnaryCall<ListAccessBindingsRequest, ListAccessBindingsResponse>;
    /** Sets access bindings for the project. */
    setAccessBindings: handleUnaryCall<SetAccessBindingsRequest, Operation>;
    /** Updates access bindings for the project. */
    updateAccessBindings: handleUnaryCall<UpdateAccessBindingsRequest, Operation>;
    /** Adds shared resource to project */
    addResource: handleUnaryCall<AddResourceToProjectRequest, Operation>;
    /** Removes shared resource from project */
    removeResource: handleUnaryCall<RemoveResourceFromProjectRequest, Operation>;
    /** Resizes project disk */
    resizeDisk: handleUnaryCall<ResizeProjectDiskRequest, Operation>;
    /** Get meta information about available restrictions. */
    getRestrictionsMeta: handleUnaryCall<Empty, GetRestrictionsMetaResponse>;
    /** Get current project restrictions. */
    getRestrictions: handleUnaryCall<GetProjectRestrictionsRequest, RestrictionsResponse>;
    /** Set project restrictions. */
    setRestrictions: handleUnaryCall<SetProjectRestrictionsRequest, Operation>;
}
export interface ProjectServiceClient extends Client {
    /** Creates a project in the specified folder. */
    create(request: CreateProjectRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    create(request: CreateProjectRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    create(request: CreateProjectRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Updates the specified project. */
    update(request: UpdateProjectRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    update(request: UpdateProjectRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    update(request: UpdateProjectRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Deletes the specified project. */
    delete(request: DeleteProjectRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    delete(request: DeleteProjectRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    delete(request: DeleteProjectRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Opens the specified project. */
    open(request: OpenProjectRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    open(request: OpenProjectRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    open(request: OpenProjectRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Returns the specified project. */
    get(request: GetProjectRequest, callback: (error: ServiceError | null, response: Project) => void): ClientUnaryCall;
    get(request: GetProjectRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Project) => void): ClientUnaryCall;
    get(request: GetProjectRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Project) => void): ClientUnaryCall;
    /** Lists projects for the specified community. */
    list(request: ListProjectsRequest, callback: (error: ServiceError | null, response: ListProjectsResponse) => void): ClientUnaryCall;
    list(request: ListProjectsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: ListProjectsResponse) => void): ClientUnaryCall;
    list(request: ListProjectsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: ListProjectsResponse) => void): ClientUnaryCall;
    /** Returns the unit balance of the specified project. */
    getUnitBalance(request: GetUnitBalanceRequest, callback: (error: ServiceError | null, response: GetUnitBalanceResponse) => void): ClientUnaryCall;
    getUnitBalance(request: GetUnitBalanceRequest, metadata: Metadata, callback: (error: ServiceError | null, response: GetUnitBalanceResponse) => void): ClientUnaryCall;
    getUnitBalance(request: GetUnitBalanceRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: GetUnitBalanceResponse) => void): ClientUnaryCall;
    /** Sets the unit balance of the specified project. */
    setUnitBalance(request: SetUnitBalanceRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    setUnitBalance(request: SetUnitBalanceRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    setUnitBalance(request: SetUnitBalanceRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Executes code of the specified notebook using configuration defined in the project settings. If the default project configuration is not specified, `c1.4` is used. */
    execute(request: ProjectExecutionRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    execute(request: ProjectExecutionRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    execute(request: ProjectExecutionRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Lists access bindings for the project. */
    listAccessBindings(request: ListAccessBindingsRequest, callback: (error: ServiceError | null, response: ListAccessBindingsResponse) => void): ClientUnaryCall;
    listAccessBindings(request: ListAccessBindingsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: ListAccessBindingsResponse) => void): ClientUnaryCall;
    listAccessBindings(request: ListAccessBindingsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: ListAccessBindingsResponse) => void): ClientUnaryCall;
    /** Sets access bindings for the project. */
    setAccessBindings(request: SetAccessBindingsRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    setAccessBindings(request: SetAccessBindingsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    setAccessBindings(request: SetAccessBindingsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Updates access bindings for the project. */
    updateAccessBindings(request: UpdateAccessBindingsRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    updateAccessBindings(request: UpdateAccessBindingsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    updateAccessBindings(request: UpdateAccessBindingsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Adds shared resource to project */
    addResource(request: AddResourceToProjectRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    addResource(request: AddResourceToProjectRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    addResource(request: AddResourceToProjectRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Removes shared resource from project */
    removeResource(request: RemoveResourceFromProjectRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    removeResource(request: RemoveResourceFromProjectRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    removeResource(request: RemoveResourceFromProjectRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Resizes project disk */
    resizeDisk(request: ResizeProjectDiskRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    resizeDisk(request: ResizeProjectDiskRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    resizeDisk(request: ResizeProjectDiskRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Get meta information about available restrictions. */
    getRestrictionsMeta(request: Empty, callback: (error: ServiceError | null, response: GetRestrictionsMetaResponse) => void): ClientUnaryCall;
    getRestrictionsMeta(request: Empty, metadata: Metadata, callback: (error: ServiceError | null, response: GetRestrictionsMetaResponse) => void): ClientUnaryCall;
    getRestrictionsMeta(request: Empty, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: GetRestrictionsMetaResponse) => void): ClientUnaryCall;
    /** Get current project restrictions. */
    getRestrictions(request: GetProjectRestrictionsRequest, callback: (error: ServiceError | null, response: RestrictionsResponse) => void): ClientUnaryCall;
    getRestrictions(request: GetProjectRestrictionsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: RestrictionsResponse) => void): ClientUnaryCall;
    getRestrictions(request: GetProjectRestrictionsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: RestrictionsResponse) => void): ClientUnaryCall;
    /** Set project restrictions. */
    setRestrictions(request: SetProjectRestrictionsRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    setRestrictions(request: SetProjectRestrictionsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    setRestrictions(request: SetProjectRestrictionsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
}
export declare const ProjectServiceClient: {
    new (address: string, credentials: ChannelCredentials, options?: Partial<ChannelOptions>): ProjectServiceClient;
    service: typeof ProjectServiceService;
};
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 {};
