/// <reference types="node" />
import { ChannelCredentials, ChannelOptions, UntypedServiceImplementation, handleUnaryCall, Client, ClientUnaryCall, Metadata, CallOptions, ServiceError } from '@grpc/grpc-js';
import _m0 from 'protobufjs/minimal';
import { FieldMask } from '../../../../../google/protobuf/field_mask';
import { Test } from '../../../../../yandex/cloud/loadtesting/agent/v1/test';
import { Operation } from '../../../../../yandex/cloud/operation/operation';
export declare const protobufPackage = "yandex.cloud.loadtesting.agent.v1";
export interface GetTestRequest {
    testId: string;
}
export interface UpdateTestRequest {
    testId: string;
    updateMask?: FieldMask;
    /** @deprecated */
    name: string;
    /** @deprecated */
    description: string;
    /** @deprecated */
    labels: {
        [key: string]: string;
    };
    /** @deprecated */
    favorite: boolean;
    /** @deprecated */
    targetVersion: string;
    imbalancePoint: number;
    imbalanceTs: number;
    imbalanceComment: string;
}
export interface UpdateTestRequest_LabelsEntry {
    key: string;
    value: string;
}
export interface UpdateTestMetadata {
    testId: string;
}
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 UpdateTestRequest: {
    encode(message: UpdateTestRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateTestRequest;
    fromJSON(object: any): UpdateTestRequest;
    toJSON(message: UpdateTestRequest): unknown;
    fromPartial<I extends {
        testId?: string | undefined;
        updateMask?: {
            paths?: string[] | undefined;
        } | undefined;
        name?: string | undefined;
        description?: string | undefined;
        labels?: {
            [x: string]: string | undefined;
        } | undefined;
        favorite?: boolean | undefined;
        targetVersion?: string | undefined;
        imbalancePoint?: number | undefined;
        imbalanceTs?: number | undefined;
        imbalanceComment?: string | undefined;
    } & {
        testId?: 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;
        favorite?: boolean | undefined;
        targetVersion?: string | undefined;
        imbalancePoint?: number | undefined;
        imbalanceTs?: number | undefined;
        imbalanceComment?: string | undefined;
    } & Record<Exclude<keyof I, keyof UpdateTestRequest>, never>>(object: I): UpdateTestRequest;
};
export declare const UpdateTestRequest_LabelsEntry: {
    encode(message: UpdateTestRequest_LabelsEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateTestRequest_LabelsEntry;
    fromJSON(object: any): UpdateTestRequest_LabelsEntry;
    toJSON(message: UpdateTestRequest_LabelsEntry): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof UpdateTestRequest_LabelsEntry>, never>>(object: I): UpdateTestRequest_LabelsEntry;
};
export declare const UpdateTestMetadata: {
    encode(message: UpdateTestMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateTestMetadata;
    fromJSON(object: any): UpdateTestMetadata;
    toJSON(message: UpdateTestMetadata): unknown;
    fromPartial<I extends {
        testId?: string | undefined;
    } & {
        testId?: string | undefined;
    } & Record<Exclude<keyof I, "testId">, never>>(object: I): UpdateTestMetadata;
};
export declare const TestServiceService: {
    /** Returns test by test id. */
    readonly get: {
        readonly path: "/yandex.cloud.loadtesting.agent.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;
    };
    /** Updates the specified test. */
    readonly update: {
        readonly path: "/yandex.cloud.loadtesting.agent.v1.TestService/Update";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: UpdateTestRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => UpdateTestRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
};
export interface TestServiceServer extends UntypedServiceImplementation {
    /** Returns test by test id. */
    get: handleUnaryCall<GetTestRequest, Test>;
    /** Updates the specified test. */
    update: handleUnaryCall<UpdateTestRequest, Operation>;
}
export interface TestServiceClient extends Client {
    /** Returns test by test id. */
    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;
    /** Updates the specified test. */
    update(request: UpdateTestRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    update(request: UpdateTestRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    update(request: UpdateTestRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => 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 {};
