/// <reference types="node" />
import { ChannelCredentials, ChannelOptions, UntypedServiceImplementation, handleUnaryCall, Client, ClientUnaryCall, Metadata, CallOptions, ServiceError } from '@grpc/grpc-js';
import _m0 from 'protobufjs/minimal';
import { Empty } from '../../../../../google/protobuf/empty';
export declare const protobufPackage = "yandex.cloud.serverless.eventrouter.v1";
export interface PutEventRequest {
    /** ID of the bus to put event. */
    busId: string;
    /** Event body. */
    body: string;
}
export interface SendEventsRequest {
    /** ID of the connector to send events. */
    connectorId: string;
    /** Batch of events bodies. */
    message: string[];
}
export declare const PutEventRequest: {
    encode(message: PutEventRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PutEventRequest;
    fromJSON(object: any): PutEventRequest;
    toJSON(message: PutEventRequest): unknown;
    fromPartial<I extends {
        busId?: string | undefined;
        body?: string | undefined;
    } & {
        busId?: string | undefined;
        body?: string | undefined;
    } & Record<Exclude<keyof I, keyof PutEventRequest>, never>>(object: I): PutEventRequest;
};
export declare const SendEventsRequest: {
    encode(message: SendEventsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SendEventsRequest;
    fromJSON(object: any): SendEventsRequest;
    toJSON(message: SendEventsRequest): unknown;
    fromPartial<I extends {
        connectorId?: string | undefined;
        message?: string[] | undefined;
    } & {
        connectorId?: string | undefined;
        message?: (string[] & string[] & Record<Exclude<keyof I["message"], keyof string[]>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof SendEventsRequest>, never>>(object: I): SendEventsRequest;
};
/** Service for put events to bus for serverless eventrouter. */
export declare const EventServiceService: {
    /** Puts event to bus. */
    readonly put: {
        readonly path: "/yandex.cloud.serverless.eventrouter.v1.EventService/Put";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: PutEventRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => PutEventRequest;
        readonly responseSerialize: (value: Empty) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Empty;
    };
    /** Send events to bus. */
    readonly send: {
        readonly path: "/yandex.cloud.serverless.eventrouter.v1.EventService/Send";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: SendEventsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => SendEventsRequest;
        readonly responseSerialize: (value: Empty) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Empty;
    };
};
export interface EventServiceServer extends UntypedServiceImplementation {
    /** Puts event to bus. */
    put: handleUnaryCall<PutEventRequest, Empty>;
    /** Send events to bus. */
    send: handleUnaryCall<SendEventsRequest, Empty>;
}
export interface EventServiceClient extends Client {
    /** Puts event to bus. */
    put(request: PutEventRequest, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall;
    put(request: PutEventRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall;
    put(request: PutEventRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall;
    /** Send events to bus. */
    send(request: SendEventsRequest, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall;
    send(request: SendEventsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall;
    send(request: SendEventsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall;
}
export declare const EventServiceClient: {
    new (address: string, credentials: ChannelCredentials, options?: Partial<ChannelOptions>): EventServiceClient;
    service: typeof EventServiceService;
};
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 {};
