/// <reference types="node" />
import { ChannelCredentials, ChannelOptions, UntypedServiceImplementation, handleUnaryCall, Client, ClientUnaryCall, Metadata, CallOptions, ServiceError } from '@grpc/grpc-js';
import _m0 from 'protobufjs/minimal';
import { Details } from '../../../../../yandex/cloud/loadtesting/api/v1/test/details';
import { SingleAgentConfiguration } from '../../../../../yandex/cloud/loadtesting/api/v1/test/single_agent_configuration';
import { Test } from '../../../../../yandex/cloud/loadtesting/api/v1/test/test';
import { Operation } from '../../../../../yandex/cloud/operation/operation';
export declare const protobufPackage = "yandex.cloud.loadtesting.api.v1";
export interface CreateTestRequest {
    /** ID of the folder to create a test in. */
    folderId: string;
    /**
     * Test configuration associated with agents on which they will be executed.
     * In case of multiple configurations, a multitest will be created.
     */
    configurations: SingleAgentConfiguration[];
    /** Test details. Name, tags etc. */
    testDetails?: Details;
}
export interface CreateTestMetadata {
    /** ID of the test that is being created. */
    testId: string;
}
export interface GetTestRequest {
    /** ID of the test to return. */
    testId: string;
}
export interface StopTestRequest {
    /** ID of the test to stop. */
    testId: string;
}
export interface StopTestMetadata {
    /** ID of the test that is being stopped. */
    testId: string;
}
export interface DeleteTestRequest {
    /** ID of the test to delete. */
    testId: string;
}
export interface DeleteTestMetadata {
    /** ID of the test that is being deleted. */
    testId: string;
}
export interface ListTestsRequest {
    /** ID of the folder to list tests in. */
    folderId: 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 [ListTestsResponse.next_page_token]
     * that can be used to get the next page of results in subsequent list requests.
     * Default value: 100.
     */
    pageSize: number;
    /**
     * Page token. To get the next page of results, set `page_token` to the
     * [ListTestsResponse.next_page_token] returned by a previous list request.
     */
    pageToken: string;
    /**
     * A filter expression that filters tests listed in the response.
     *
     * The filter expression may contain multiple field expressions joined by `AND`.
     * The field expression must specify:
     * 1. The field name.
     * 2. An operator:
     *    - `=`, `!=`, `<`, `<=`, `>`, `>=`, `CONTAINS`, `:` for single values.
     *    - `IN` or `NOT IN` for lists of values.
     * 3. The value. String values must be encosed in `"`, boolean values are {`true`, `false`}, timestamp values in ISO-8601.
     *
     * Currently supported fields:
     * - `id` [yandex.cloud.loadtesting.api.v1.test.Test.id]
     *   - operators: `=`, `!=`, `IN`, `NOT IN`
     * - `details.name` [yandex.cloud.loadtesting.api.v1.test.Details.name]
     *   - operators: `=`, `!=`, `IN`, `NOT IN`, `CONTAINS`
     * - `details.tags.<TAG_NAME>` [yandex.cloud.loadtesting.api.v1.test.Details.tags]
     *   - operators: `:`
     * - `summary.status` [yandex.cloud.loadtesting.api.v1.test.Summary.status]
     *   - operators: `=`, `!=`, `IN`, `NOT IN`
     * - `summary.is_finished` [yandex.cloud.loadtesting.api.v1.test.Summary.is_finished]
     *   - operators: `=`
     * - `summary.created_at` [yandex.cloud.loadtesting.api.v1.test.Summary.created_at]
     *   - operators: `<`, `<=`, `>`, `>=`
     * - `summary.created_by` [yandex.cloud.loadtesting.api.v1.test.Summary.created_by]
     *   - operators: `=`, `!=`, `IN`, `NOT IN`
     *
     * Examples:
     * - `summary.status IN ("DONE", "ERROR") AND details.tags.author:"yandex"`
     * - `summary.is_finished = true AND details.name CONTAINS "nightly-test"`
     */
    filter: string;
}
export interface ListTestsResponse {
    /** List of tests in the specified folder. */
    tests: Test[];
    /**
     * Token for getting the next page of the list. If the number of results is greater than
     * the specified [ListTestsRequest.page_size], use `next_page_token` as the value
     * for the [ListTestsRequest.page_token] parameter in the next list request.
     *
     * Each subsequent page will have its own `next_page_token` to continue paging through the results.
     */
    nextPageToken: string;
}
export declare const CreateTestRequest: {
    encode(message: CreateTestRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateTestRequest;
    fromJSON(object: any): CreateTestRequest;
    toJSON(message: CreateTestRequest): unknown;
    fromPartial<I extends {
        folderId?: string | undefined;
        configurations?: {
            configId?: string | undefined;
            agentSelector?: {
                agentId?: string | undefined;
                matchByFilter?: string | undefined;
                anonymousAgent?: boolean | undefined;
            } | undefined;
            files?: {
                [x: string]: {
                    objectStorage?: {
                        bucket?: string | undefined;
                        name?: string | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
        }[] | undefined;
        testDetails?: {
            name?: string | undefined;
            description?: string | undefined;
            tags?: {
                key?: string | undefined;
                value?: string | undefined;
            }[] | undefined;
            loggingLogGroupId?: string | undefined;
            artifactSettings?: {
                objectStorageBucket?: string | undefined;
                isArchive?: boolean | undefined;
                filterInclude?: string[] | undefined;
                filterExclude?: string[] | undefined;
            } | undefined;
        } | undefined;
    } & {
        folderId?: string | undefined;
        configurations?: ({
            configId?: string | undefined;
            agentSelector?: {
                agentId?: string | undefined;
                matchByFilter?: string | undefined;
                anonymousAgent?: boolean | undefined;
            } | undefined;
            files?: {
                [x: string]: {
                    objectStorage?: {
                        bucket?: string | undefined;
                        name?: string | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
        }[] & ({
            configId?: string | undefined;
            agentSelector?: {
                agentId?: string | undefined;
                matchByFilter?: string | undefined;
                anonymousAgent?: boolean | undefined;
            } | undefined;
            files?: {
                [x: string]: {
                    objectStorage?: {
                        bucket?: string | undefined;
                        name?: string | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
        } & {
            configId?: string | undefined;
            agentSelector?: ({
                agentId?: string | undefined;
                matchByFilter?: string | undefined;
                anonymousAgent?: boolean | undefined;
            } & {
                agentId?: string | undefined;
                matchByFilter?: string | undefined;
                anonymousAgent?: boolean | undefined;
            } & Record<Exclude<keyof I["configurations"][number]["agentSelector"], keyof import("./test/agent_selector").AgentSelector>, never>) | undefined;
            files?: ({
                [x: string]: {
                    objectStorage?: {
                        bucket?: string | undefined;
                        name?: string | undefined;
                    } | undefined;
                } | undefined;
            } & {
                [x: string]: ({
                    objectStorage?: {
                        bucket?: string | undefined;
                        name?: string | undefined;
                    } | undefined;
                } & {
                    objectStorage?: ({
                        bucket?: string | undefined;
                        name?: string | undefined;
                    } & {
                        bucket?: string | undefined;
                        name?: string | undefined;
                    } & Record<Exclude<keyof I["configurations"][number]["files"][string]["objectStorage"], keyof import("./test/object_storage").ObjectStorage>, never>) | undefined;
                } & Record<Exclude<keyof I["configurations"][number]["files"][string], "objectStorage">, never>) | undefined;
            } & Record<Exclude<keyof I["configurations"][number]["files"], string | number>, never>) | undefined;
        } & Record<Exclude<keyof I["configurations"][number], keyof SingleAgentConfiguration>, never>)[] & Record<Exclude<keyof I["configurations"], keyof {
            configId?: string | undefined;
            agentSelector?: {
                agentId?: string | undefined;
                matchByFilter?: string | undefined;
                anonymousAgent?: boolean | undefined;
            } | undefined;
            files?: {
                [x: string]: {
                    objectStorage?: {
                        bucket?: string | undefined;
                        name?: string | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
        }[]>, never>) | undefined;
        testDetails?: ({
            name?: string | undefined;
            description?: string | undefined;
            tags?: {
                key?: string | undefined;
                value?: string | undefined;
            }[] | undefined;
            loggingLogGroupId?: string | undefined;
            artifactSettings?: {
                objectStorageBucket?: string | undefined;
                isArchive?: boolean | undefined;
                filterInclude?: string[] | undefined;
                filterExclude?: string[] | undefined;
            } | undefined;
        } & {
            name?: string | undefined;
            description?: string | undefined;
            tags?: ({
                key?: string | undefined;
                value?: string | undefined;
            }[] & ({
                key?: string | undefined;
                value?: string | undefined;
            } & {
                key?: string | undefined;
                value?: string | undefined;
            } & Record<Exclude<keyof I["testDetails"]["tags"][number], keyof import("./common/tag").Tag>, never>)[] & Record<Exclude<keyof I["testDetails"]["tags"], keyof {
                key?: string | undefined;
                value?: string | undefined;
            }[]>, never>) | undefined;
            loggingLogGroupId?: string | undefined;
            artifactSettings?: ({
                objectStorageBucket?: string | undefined;
                isArchive?: boolean | undefined;
                filterInclude?: string[] | undefined;
                filterExclude?: string[] | undefined;
            } & {
                objectStorageBucket?: string | undefined;
                isArchive?: boolean | undefined;
                filterInclude?: (string[] & string[] & Record<Exclude<keyof I["testDetails"]["artifactSettings"]["filterInclude"], keyof string[]>, never>) | undefined;
                filterExclude?: (string[] & string[] & Record<Exclude<keyof I["testDetails"]["artifactSettings"]["filterExclude"], keyof string[]>, never>) | undefined;
            } & Record<Exclude<keyof I["testDetails"]["artifactSettings"], keyof import("./test/artifact_settings").ArtifactSettings>, never>) | undefined;
        } & Record<Exclude<keyof I["testDetails"], keyof Details>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof CreateTestRequest>, never>>(object: I): CreateTestRequest;
};
export declare const CreateTestMetadata: {
    encode(message: CreateTestMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateTestMetadata;
    fromJSON(object: any): CreateTestMetadata;
    toJSON(message: CreateTestMetadata): unknown;
    fromPartial<I extends {
        testId?: string | undefined;
    } & {
        testId?: string | undefined;
    } & Record<Exclude<keyof I, "testId">, never>>(object: I): CreateTestMetadata;
};
export declare const GetTestRequest: {
    encode(message: GetTestRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetTestRequest;
    fromJSON(object: any): GetTestRequest;
    toJSON(message: GetTestRequest): unknown;
    fromPartial<I extends {
        testId?: string | undefined;
    } & {
        testId?: string | undefined;
    } & Record<Exclude<keyof I, "testId">, never>>(object: I): GetTestRequest;
};
export declare const StopTestRequest: {
    encode(message: StopTestRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): StopTestRequest;
    fromJSON(object: any): StopTestRequest;
    toJSON(message: StopTestRequest): unknown;
    fromPartial<I extends {
        testId?: string | undefined;
    } & {
        testId?: string | undefined;
    } & Record<Exclude<keyof I, "testId">, never>>(object: I): StopTestRequest;
};
export declare const StopTestMetadata: {
    encode(message: StopTestMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): StopTestMetadata;
    fromJSON(object: any): StopTestMetadata;
    toJSON(message: StopTestMetadata): unknown;
    fromPartial<I extends {
        testId?: string | undefined;
    } & {
        testId?: string | undefined;
    } & Record<Exclude<keyof I, "testId">, never>>(object: I): StopTestMetadata;
};
export declare const DeleteTestRequest: {
    encode(message: DeleteTestRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteTestRequest;
    fromJSON(object: any): DeleteTestRequest;
    toJSON(message: DeleteTestRequest): unknown;
    fromPartial<I extends {
        testId?: string | undefined;
    } & {
        testId?: string | undefined;
    } & Record<Exclude<keyof I, "testId">, never>>(object: I): DeleteTestRequest;
};
export declare const DeleteTestMetadata: {
    encode(message: DeleteTestMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteTestMetadata;
    fromJSON(object: any): DeleteTestMetadata;
    toJSON(message: DeleteTestMetadata): unknown;
    fromPartial<I extends {
        testId?: string | undefined;
    } & {
        testId?: string | undefined;
    } & Record<Exclude<keyof I, "testId">, never>>(object: I): DeleteTestMetadata;
};
export declare const ListTestsRequest: {
    encode(message: ListTestsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListTestsRequest;
    fromJSON(object: any): ListTestsRequest;
    toJSON(message: ListTestsRequest): unknown;
    fromPartial<I extends {
        folderId?: string | undefined;
        pageSize?: number | undefined;
        pageToken?: string | undefined;
        filter?: string | undefined;
    } & {
        folderId?: string | undefined;
        pageSize?: number | undefined;
        pageToken?: string | undefined;
        filter?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListTestsRequest>, never>>(object: I): ListTestsRequest;
};
export declare const ListTestsResponse: {
    encode(message: ListTestsResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListTestsResponse;
    fromJSON(object: any): ListTestsResponse;
    toJSON(message: ListTestsResponse): unknown;
    fromPartial<I extends {
        tests?: {
            id?: string | undefined;
            configurations?: {
                configId?: string | undefined;
                agentSelector?: {
                    agentId?: string | undefined;
                    matchByFilter?: string | undefined;
                    anonymousAgent?: boolean | undefined;
                } | undefined;
                files?: {
                    [x: string]: {
                        objectStorage?: {
                            bucket?: string | undefined;
                            name?: string | undefined;
                        } | undefined;
                    } | undefined;
                } | undefined;
            }[] | undefined;
            details?: {
                name?: string | undefined;
                description?: string | undefined;
                tags?: {
                    key?: string | undefined;
                    value?: string | undefined;
                }[] | undefined;
                loggingLogGroupId?: string | undefined;
                artifactSettings?: {
                    objectStorageBucket?: string | undefined;
                    isArchive?: boolean | undefined;
                    filterInclude?: string[] | undefined;
                    filterExclude?: string[] | undefined;
                } | undefined;
            } | undefined;
            summary?: {
                status?: import("./test/status").Status | undefined;
                createdAt?: Date | undefined;
                createdBy?: string | undefined;
                startedAt?: Date | undefined;
                finishedAt?: Date | undefined;
                isFinished?: boolean | undefined;
                error?: string | undefined;
                imbalancePoint?: {
                    at?: Date | undefined;
                    rps?: number | undefined;
                    comment?: string | undefined;
                } | undefined;
                assignedAgentId?: string | undefined;
                artifacts?: {
                    objectStorage?: {
                        bucket?: string | undefined;
                        name?: string | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
            folderId?: string | undefined;
        }[] | undefined;
        nextPageToken?: string | undefined;
    } & {
        tests?: ({
            id?: string | undefined;
            configurations?: {
                configId?: string | undefined;
                agentSelector?: {
                    agentId?: string | undefined;
                    matchByFilter?: string | undefined;
                    anonymousAgent?: boolean | undefined;
                } | undefined;
                files?: {
                    [x: string]: {
                        objectStorage?: {
                            bucket?: string | undefined;
                            name?: string | undefined;
                        } | undefined;
                    } | undefined;
                } | undefined;
            }[] | undefined;
            details?: {
                name?: string | undefined;
                description?: string | undefined;
                tags?: {
                    key?: string | undefined;
                    value?: string | undefined;
                }[] | undefined;
                loggingLogGroupId?: string | undefined;
                artifactSettings?: {
                    objectStorageBucket?: string | undefined;
                    isArchive?: boolean | undefined;
                    filterInclude?: string[] | undefined;
                    filterExclude?: string[] | undefined;
                } | undefined;
            } | undefined;
            summary?: {
                status?: import("./test/status").Status | undefined;
                createdAt?: Date | undefined;
                createdBy?: string | undefined;
                startedAt?: Date | undefined;
                finishedAt?: Date | undefined;
                isFinished?: boolean | undefined;
                error?: string | undefined;
                imbalancePoint?: {
                    at?: Date | undefined;
                    rps?: number | undefined;
                    comment?: string | undefined;
                } | undefined;
                assignedAgentId?: string | undefined;
                artifacts?: {
                    objectStorage?: {
                        bucket?: string | undefined;
                        name?: string | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
            folderId?: string | undefined;
        }[] & ({
            id?: string | undefined;
            configurations?: {
                configId?: string | undefined;
                agentSelector?: {
                    agentId?: string | undefined;
                    matchByFilter?: string | undefined;
                    anonymousAgent?: boolean | undefined;
                } | undefined;
                files?: {
                    [x: string]: {
                        objectStorage?: {
                            bucket?: string | undefined;
                            name?: string | undefined;
                        } | undefined;
                    } | undefined;
                } | undefined;
            }[] | undefined;
            details?: {
                name?: string | undefined;
                description?: string | undefined;
                tags?: {
                    key?: string | undefined;
                    value?: string | undefined;
                }[] | undefined;
                loggingLogGroupId?: string | undefined;
                artifactSettings?: {
                    objectStorageBucket?: string | undefined;
                    isArchive?: boolean | undefined;
                    filterInclude?: string[] | undefined;
                    filterExclude?: string[] | undefined;
                } | undefined;
            } | undefined;
            summary?: {
                status?: import("./test/status").Status | undefined;
                createdAt?: Date | undefined;
                createdBy?: string | undefined;
                startedAt?: Date | undefined;
                finishedAt?: Date | undefined;
                isFinished?: boolean | undefined;
                error?: string | undefined;
                imbalancePoint?: {
                    at?: Date | undefined;
                    rps?: number | undefined;
                    comment?: string | undefined;
                } | undefined;
                assignedAgentId?: string | undefined;
                artifacts?: {
                    objectStorage?: {
                        bucket?: string | undefined;
                        name?: string | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
            folderId?: string | undefined;
        } & {
            id?: string | undefined;
            configurations?: ({
                configId?: string | undefined;
                agentSelector?: {
                    agentId?: string | undefined;
                    matchByFilter?: string | undefined;
                    anonymousAgent?: boolean | undefined;
                } | undefined;
                files?: {
                    [x: string]: {
                        objectStorage?: {
                            bucket?: string | undefined;
                            name?: string | undefined;
                        } | undefined;
                    } | undefined;
                } | undefined;
            }[] & ({
                configId?: string | undefined;
                agentSelector?: {
                    agentId?: string | undefined;
                    matchByFilter?: string | undefined;
                    anonymousAgent?: boolean | undefined;
                } | undefined;
                files?: {
                    [x: string]: {
                        objectStorage?: {
                            bucket?: string | undefined;
                            name?: string | undefined;
                        } | undefined;
                    } | undefined;
                } | undefined;
            } & {
                configId?: string | undefined;
                agentSelector?: ({
                    agentId?: string | undefined;
                    matchByFilter?: string | undefined;
                    anonymousAgent?: boolean | undefined;
                } & {
                    agentId?: string | undefined;
                    matchByFilter?: string | undefined;
                    anonymousAgent?: boolean | undefined;
                } & Record<Exclude<keyof I["tests"][number]["configurations"][number]["agentSelector"], keyof import("./test/agent_selector").AgentSelector>, never>) | undefined;
                files?: ({
                    [x: string]: {
                        objectStorage?: {
                            bucket?: string | undefined;
                            name?: string | undefined;
                        } | undefined;
                    } | undefined;
                } & {
                    [x: string]: ({
                        objectStorage?: {
                            bucket?: string | undefined;
                            name?: string | undefined;
                        } | undefined;
                    } & {
                        objectStorage?: ({
                            bucket?: string | undefined;
                            name?: string | undefined;
                        } & {
                            bucket?: string | undefined;
                            name?: string | undefined;
                        } & Record<Exclude<keyof I["tests"][number]["configurations"][number]["files"][string]["objectStorage"], keyof import("./test/object_storage").ObjectStorage>, never>) | undefined;
                    } & Record<Exclude<keyof I["tests"][number]["configurations"][number]["files"][string], "objectStorage">, never>) | undefined;
                } & Record<Exclude<keyof I["tests"][number]["configurations"][number]["files"], string | number>, never>) | undefined;
            } & Record<Exclude<keyof I["tests"][number]["configurations"][number], keyof SingleAgentConfiguration>, never>)[] & Record<Exclude<keyof I["tests"][number]["configurations"], keyof {
                configId?: string | undefined;
                agentSelector?: {
                    agentId?: string | undefined;
                    matchByFilter?: string | undefined;
                    anonymousAgent?: boolean | undefined;
                } | undefined;
                files?: {
                    [x: string]: {
                        objectStorage?: {
                            bucket?: string | undefined;
                            name?: string | undefined;
                        } | undefined;
                    } | undefined;
                } | undefined;
            }[]>, never>) | undefined;
            details?: ({
                name?: string | undefined;
                description?: string | undefined;
                tags?: {
                    key?: string | undefined;
                    value?: string | undefined;
                }[] | undefined;
                loggingLogGroupId?: string | undefined;
                artifactSettings?: {
                    objectStorageBucket?: string | undefined;
                    isArchive?: boolean | undefined;
                    filterInclude?: string[] | undefined;
                    filterExclude?: string[] | undefined;
                } | undefined;
            } & {
                name?: string | undefined;
                description?: string | undefined;
                tags?: ({
                    key?: string | undefined;
                    value?: string | undefined;
                }[] & ({
                    key?: string | undefined;
                    value?: string | undefined;
                } & {
                    key?: string | undefined;
                    value?: string | undefined;
                } & Record<Exclude<keyof I["tests"][number]["details"]["tags"][number], keyof import("./common/tag").Tag>, never>)[] & Record<Exclude<keyof I["tests"][number]["details"]["tags"], keyof {
                    key?: string | undefined;
                    value?: string | undefined;
                }[]>, never>) | undefined;
                loggingLogGroupId?: string | undefined;
                artifactSettings?: ({
                    objectStorageBucket?: string | undefined;
                    isArchive?: boolean | undefined;
                    filterInclude?: string[] | undefined;
                    filterExclude?: string[] | undefined;
                } & {
                    objectStorageBucket?: string | undefined;
                    isArchive?: boolean | undefined;
                    filterInclude?: (string[] & string[] & Record<Exclude<keyof I["tests"][number]["details"]["artifactSettings"]["filterInclude"], keyof string[]>, never>) | undefined;
                    filterExclude?: (string[] & string[] & Record<Exclude<keyof I["tests"][number]["details"]["artifactSettings"]["filterExclude"], keyof string[]>, never>) | undefined;
                } & Record<Exclude<keyof I["tests"][number]["details"]["artifactSettings"], keyof import("./test/artifact_settings").ArtifactSettings>, never>) | undefined;
            } & Record<Exclude<keyof I["tests"][number]["details"], keyof Details>, never>) | undefined;
            summary?: ({
                status?: import("./test/status").Status | undefined;
                createdAt?: Date | undefined;
                createdBy?: string | undefined;
                startedAt?: Date | undefined;
                finishedAt?: Date | undefined;
                isFinished?: boolean | undefined;
                error?: string | undefined;
                imbalancePoint?: {
                    at?: Date | undefined;
                    rps?: number | undefined;
                    comment?: string | undefined;
                } | undefined;
                assignedAgentId?: string | undefined;
                artifacts?: {
                    objectStorage?: {
                        bucket?: string | undefined;
                        name?: string | undefined;
                    } | undefined;
                } | undefined;
            } & {
                status?: import("./test/status").Status | undefined;
                createdAt?: Date | undefined;
                createdBy?: string | undefined;
                startedAt?: Date | undefined;
                finishedAt?: Date | undefined;
                isFinished?: boolean | undefined;
                error?: string | undefined;
                imbalancePoint?: ({
                    at?: Date | undefined;
                    rps?: number | undefined;
                    comment?: string | undefined;
                } & {
                    at?: Date | undefined;
                    rps?: number | undefined;
                    comment?: string | undefined;
                } & Record<Exclude<keyof I["tests"][number]["summary"]["imbalancePoint"], keyof import("./test/imbalance_point").ImbalancePoint>, never>) | undefined;
                assignedAgentId?: string | undefined;
                artifacts?: ({
                    objectStorage?: {
                        bucket?: string | undefined;
                        name?: string | undefined;
                    } | undefined;
                } & {
                    objectStorage?: ({
                        bucket?: string | undefined;
                        name?: string | undefined;
                    } & {
                        bucket?: string | undefined;
                        name?: string | undefined;
                    } & Record<Exclude<keyof I["tests"][number]["summary"]["artifacts"]["objectStorage"], keyof import("./test/object_storage").ObjectStorage>, never>) | undefined;
                } & Record<Exclude<keyof I["tests"][number]["summary"]["artifacts"], "objectStorage">, never>) | undefined;
            } & Record<Exclude<keyof I["tests"][number]["summary"], keyof import("./test/summary").Summary>, never>) | undefined;
            folderId?: string | undefined;
        } & Record<Exclude<keyof I["tests"][number], keyof Test>, never>)[] & Record<Exclude<keyof I["tests"], keyof {
            id?: string | undefined;
            configurations?: {
                configId?: string | undefined;
                agentSelector?: {
                    agentId?: string | undefined;
                    matchByFilter?: string | undefined;
                    anonymousAgent?: boolean | undefined;
                } | undefined;
                files?: {
                    [x: string]: {
                        objectStorage?: {
                            bucket?: string | undefined;
                            name?: string | undefined;
                        } | undefined;
                    } | undefined;
                } | undefined;
            }[] | undefined;
            details?: {
                name?: string | undefined;
                description?: string | undefined;
                tags?: {
                    key?: string | undefined;
                    value?: string | undefined;
                }[] | undefined;
                loggingLogGroupId?: string | undefined;
                artifactSettings?: {
                    objectStorageBucket?: string | undefined;
                    isArchive?: boolean | undefined;
                    filterInclude?: string[] | undefined;
                    filterExclude?: string[] | undefined;
                } | undefined;
            } | undefined;
            summary?: {
                status?: import("./test/status").Status | undefined;
                createdAt?: Date | undefined;
                createdBy?: string | undefined;
                startedAt?: Date | undefined;
                finishedAt?: Date | undefined;
                isFinished?: boolean | undefined;
                error?: string | undefined;
                imbalancePoint?: {
                    at?: Date | undefined;
                    rps?: number | undefined;
                    comment?: string | undefined;
                } | undefined;
                assignedAgentId?: string | undefined;
                artifacts?: {
                    objectStorage?: {
                        bucket?: string | undefined;
                        name?: string | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
            folderId?: string | undefined;
        }[]>, never>) | undefined;
        nextPageToken?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListTestsResponse>, never>>(object: I): ListTestsResponse;
};
/** A set of methods for managing tests. */
export declare const TestServiceService: {
    /** Creates (runs) a test in the specified folder. */
    readonly create: {
        readonly path: "/yandex.cloud.loadtesting.api.v1.TestService/Create";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: CreateTestRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => CreateTestRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /**
     * Returns the specified test.
     *
     * To get the list of all available tests, make a [List] request.
     */
    readonly get: {
        readonly path: "/yandex.cloud.loadtesting.api.v1.TestService/Get";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: GetTestRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => GetTestRequest;
        readonly responseSerialize: (value: Test) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Test;
    };
    /** Stops the specified test. */
    readonly stop: {
        readonly path: "/yandex.cloud.loadtesting.api.v1.TestService/Stop";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: StopTestRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => StopTestRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Deletes specified tests. */
    readonly delete: {
        readonly path: "/yandex.cloud.loadtesting.api.v1.TestService/Delete";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: DeleteTestRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => DeleteTestRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Retrieves the list of test in the specified folder. */
    readonly list: {
        readonly path: "/yandex.cloud.loadtesting.api.v1.TestService/List";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: ListTestsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ListTestsRequest;
        readonly responseSerialize: (value: ListTestsResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => ListTestsResponse;
    };
};
export interface TestServiceServer extends UntypedServiceImplementation {
    /** Creates (runs) a test in the specified folder. */
    create: handleUnaryCall<CreateTestRequest, Operation>;
    /**
     * Returns the specified test.
     *
     * To get the list of all available tests, make a [List] request.
     */
    get: handleUnaryCall<GetTestRequest, Test>;
    /** Stops the specified test. */
    stop: handleUnaryCall<StopTestRequest, Operation>;
    /** Deletes specified tests. */
    delete: handleUnaryCall<DeleteTestRequest, Operation>;
    /** Retrieves the list of test in the specified folder. */
    list: handleUnaryCall<ListTestsRequest, ListTestsResponse>;
}
export interface TestServiceClient extends Client {
    /** Creates (runs) a test in the specified folder. */
    create(request: CreateTestRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    create(request: CreateTestRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    create(request: CreateTestRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /**
     * Returns the specified test.
     *
     * To get the list of all available tests, make a [List] request.
     */
    get(request: GetTestRequest, callback: (error: ServiceError | null, response: Test) => void): ClientUnaryCall;
    get(request: GetTestRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Test) => void): ClientUnaryCall;
    get(request: GetTestRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Test) => void): ClientUnaryCall;
    /** Stops the specified test. */
    stop(request: StopTestRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    stop(request: StopTestRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    stop(request: StopTestRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Deletes specified tests. */
    delete(request: DeleteTestRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    delete(request: DeleteTestRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    delete(request: DeleteTestRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Retrieves the list of test in the specified folder. */
    list(request: ListTestsRequest, callback: (error: ServiceError | null, response: ListTestsResponse) => void): ClientUnaryCall;
    list(request: ListTestsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: ListTestsResponse) => void): ClientUnaryCall;
    list(request: ListTestsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: ListTestsResponse) => void): ClientUnaryCall;
}
export declare const TestServiceClient: {
    new (address: string, credentials: ChannelCredentials, options?: Partial<ChannelOptions>): TestServiceClient;
    service: typeof TestServiceService;
};
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 {};
