import _m0 from 'protobufjs/minimal';
import { Empty } from '../../../../../google/protobuf/empty';
export declare const protobufPackage = "yandex.cloud.datatransfer.v1.endpoint";
export declare enum ObjectTransferStage {
    OBJECT_TRANSFER_STAGE_UNSPECIFIED = 0,
    /** BEFORE_DATA - Before data transfer */
    BEFORE_DATA = 1,
    /** AFTER_DATA - After data transfer */
    AFTER_DATA = 2,
    /** NEVER - Don't copy */
    NEVER = 3,
    UNRECOGNIZED = -1
}
export declare function objectTransferStageFromJSON(object: any): ObjectTransferStage;
export declare function objectTransferStageToJSON(object: ObjectTransferStage): string;
export declare enum CleanupPolicy {
    CLEANUP_POLICY_UNSPECIFIED = 0,
    /** DISABLED - Don't cleanup */
    DISABLED = 1,
    /** DROP - Drop */
    DROP = 2,
    /** TRUNCATE - Truncate */
    TRUNCATE = 3,
    UNRECOGNIZED = -1
}
export declare function cleanupPolicyFromJSON(object: any): CleanupPolicy;
export declare function cleanupPolicyToJSON(object: CleanupPolicy): string;
export declare enum ColumnType {
    COLUMN_TYPE_UNSPECIFIED = 0,
    INT32 = 1,
    INT16 = 2,
    INT8 = 3,
    UINT64 = 4,
    UINT32 = 5,
    UINT16 = 6,
    UINT8 = 7,
    DOUBLE = 8,
    BOOLEAN = 9,
    STRING = 10,
    UTF8 = 11,
    ANY = 12,
    DATETIME = 13,
    INT64 = 14,
    UNRECOGNIZED = -1
}
export declare function columnTypeFromJSON(object: any): ColumnType;
export declare function columnTypeToJSON(object: ColumnType): string;
export interface AltName {
    /** Source table name */
    fromName: string;
    /** Target table name */
    toName: string;
}
export interface Secret {
    /** Raw secret value */
    raw: string | undefined;
}
export interface ColSchema {
    name: string;
    type: ColumnType;
    key: boolean;
    required: boolean;
    path: string;
}
export interface TLSMode {
    disabled?: Empty | undefined;
    enabled?: TLSConfig | undefined;
}
export interface TLSConfig {
    /**
     * CA certificate
     *
     * X.509 certificate of the certificate authority which issued the server's
     * certificate, in PEM format. When CA certificate is specified TLS is used to
     * connect to the server.
     */
    caCertificate: string;
}
export interface ColumnValue {
    stringValue: string | undefined;
}
export interface DataTransformationOptions {
    /** Cloud function */
    cloudFunction: string;
    /** Number of retries */
    numberOfRetries: number;
    /** Buffer size for function */
    bufferSize: string;
    /** Flush interval */
    bufferFlushInterval: string;
    /** Invocation timeout */
    invocationTimeout: string;
    /** Service account */
    serviceAccountId: string;
}
export interface FieldList {
    /** Column schema */
    fields: ColSchema[];
}
export interface DataSchema {
    jsonFields: string | undefined;
    fields?: FieldList | undefined;
}
/** No authentication */
export interface NoAuth {
}
export interface ConnectionManagerConnection {
    connectionId: string;
    /** Network interface for endpoint. If none will assume public ipv4 */
    subnetId: string;
}
export declare const AltName: {
    encode(message: AltName, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): AltName;
    fromJSON(object: any): AltName;
    toJSON(message: AltName): unknown;
    fromPartial<I extends {
        fromName?: string | undefined;
        toName?: string | undefined;
    } & {
        fromName?: string | undefined;
        toName?: string | undefined;
    } & Record<Exclude<keyof I, keyof AltName>, never>>(object: I): AltName;
};
export declare const Secret: {
    encode(message: Secret, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Secret;
    fromJSON(object: any): Secret;
    toJSON(message: Secret): unknown;
    fromPartial<I extends {
        raw?: string | undefined;
    } & {
        raw?: string | undefined;
    } & Record<Exclude<keyof I, "raw">, never>>(object: I): Secret;
};
export declare const ColSchema: {
    encode(message: ColSchema, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ColSchema;
    fromJSON(object: any): ColSchema;
    toJSON(message: ColSchema): unknown;
    fromPartial<I extends {
        name?: string | undefined;
        type?: ColumnType | undefined;
        key?: boolean | undefined;
        required?: boolean | undefined;
        path?: string | undefined;
    } & {
        name?: string | undefined;
        type?: ColumnType | undefined;
        key?: boolean | undefined;
        required?: boolean | undefined;
        path?: string | undefined;
    } & Record<Exclude<keyof I, keyof ColSchema>, never>>(object: I): ColSchema;
};
export declare const TLSMode: {
    encode(message: TLSMode, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): TLSMode;
    fromJSON(object: any): TLSMode;
    toJSON(message: TLSMode): unknown;
    fromPartial<I extends {
        disabled?: {} | undefined;
        enabled?: {
            caCertificate?: string | undefined;
        } | undefined;
    } & {
        disabled?: ({} & {} & Record<Exclude<keyof I["disabled"], never>, never>) | undefined;
        enabled?: ({
            caCertificate?: string | undefined;
        } & {
            caCertificate?: string | undefined;
        } & Record<Exclude<keyof I["enabled"], "caCertificate">, never>) | undefined;
    } & Record<Exclude<keyof I, keyof TLSMode>, never>>(object: I): TLSMode;
};
export declare const TLSConfig: {
    encode(message: TLSConfig, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): TLSConfig;
    fromJSON(object: any): TLSConfig;
    toJSON(message: TLSConfig): unknown;
    fromPartial<I extends {
        caCertificate?: string | undefined;
    } & {
        caCertificate?: string | undefined;
    } & Record<Exclude<keyof I, "caCertificate">, never>>(object: I): TLSConfig;
};
export declare const ColumnValue: {
    encode(message: ColumnValue, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ColumnValue;
    fromJSON(object: any): ColumnValue;
    toJSON(message: ColumnValue): unknown;
    fromPartial<I extends {
        stringValue?: string | undefined;
    } & {
        stringValue?: string | undefined;
    } & Record<Exclude<keyof I, "stringValue">, never>>(object: I): ColumnValue;
};
export declare const DataTransformationOptions: {
    encode(message: DataTransformationOptions, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DataTransformationOptions;
    fromJSON(object: any): DataTransformationOptions;
    toJSON(message: DataTransformationOptions): unknown;
    fromPartial<I extends {
        cloudFunction?: string | undefined;
        numberOfRetries?: number | undefined;
        bufferSize?: string | undefined;
        bufferFlushInterval?: string | undefined;
        invocationTimeout?: string | undefined;
        serviceAccountId?: string | undefined;
    } & {
        cloudFunction?: string | undefined;
        numberOfRetries?: number | undefined;
        bufferSize?: string | undefined;
        bufferFlushInterval?: string | undefined;
        invocationTimeout?: string | undefined;
        serviceAccountId?: string | undefined;
    } & Record<Exclude<keyof I, keyof DataTransformationOptions>, never>>(object: I): DataTransformationOptions;
};
export declare const FieldList: {
    encode(message: FieldList, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): FieldList;
    fromJSON(object: any): FieldList;
    toJSON(message: FieldList): unknown;
    fromPartial<I extends {
        fields?: {
            name?: string | undefined;
            type?: ColumnType | undefined;
            key?: boolean | undefined;
            required?: boolean | undefined;
            path?: string | undefined;
        }[] | undefined;
    } & {
        fields?: ({
            name?: string | undefined;
            type?: ColumnType | undefined;
            key?: boolean | undefined;
            required?: boolean | undefined;
            path?: string | undefined;
        }[] & ({
            name?: string | undefined;
            type?: ColumnType | undefined;
            key?: boolean | undefined;
            required?: boolean | undefined;
            path?: string | undefined;
        } & {
            name?: string | undefined;
            type?: ColumnType | undefined;
            key?: boolean | undefined;
            required?: boolean | undefined;
            path?: string | undefined;
        } & Record<Exclude<keyof I["fields"][number], keyof ColSchema>, never>)[] & Record<Exclude<keyof I["fields"], keyof {
            name?: string | undefined;
            type?: ColumnType | undefined;
            key?: boolean | undefined;
            required?: boolean | undefined;
            path?: string | undefined;
        }[]>, never>) | undefined;
    } & Record<Exclude<keyof I, "fields">, never>>(object: I): FieldList;
};
export declare const DataSchema: {
    encode(message: DataSchema, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DataSchema;
    fromJSON(object: any): DataSchema;
    toJSON(message: DataSchema): unknown;
    fromPartial<I extends {
        jsonFields?: string | undefined;
        fields?: {
            fields?: {
                name?: string | undefined;
                type?: ColumnType | undefined;
                key?: boolean | undefined;
                required?: boolean | undefined;
                path?: string | undefined;
            }[] | undefined;
        } | undefined;
    } & {
        jsonFields?: string | undefined;
        fields?: ({
            fields?: {
                name?: string | undefined;
                type?: ColumnType | undefined;
                key?: boolean | undefined;
                required?: boolean | undefined;
                path?: string | undefined;
            }[] | undefined;
        } & {
            fields?: ({
                name?: string | undefined;
                type?: ColumnType | undefined;
                key?: boolean | undefined;
                required?: boolean | undefined;
                path?: string | undefined;
            }[] & ({
                name?: string | undefined;
                type?: ColumnType | undefined;
                key?: boolean | undefined;
                required?: boolean | undefined;
                path?: string | undefined;
            } & {
                name?: string | undefined;
                type?: ColumnType | undefined;
                key?: boolean | undefined;
                required?: boolean | undefined;
                path?: string | undefined;
            } & Record<Exclude<keyof I["fields"]["fields"][number], keyof ColSchema>, never>)[] & Record<Exclude<keyof I["fields"]["fields"], keyof {
                name?: string | undefined;
                type?: ColumnType | undefined;
                key?: boolean | undefined;
                required?: boolean | undefined;
                path?: string | undefined;
            }[]>, never>) | undefined;
        } & Record<Exclude<keyof I["fields"], "fields">, never>) | undefined;
    } & Record<Exclude<keyof I, keyof DataSchema>, never>>(object: I): DataSchema;
};
export declare const NoAuth: {
    encode(_: NoAuth, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): NoAuth;
    fromJSON(_: any): NoAuth;
    toJSON(_: NoAuth): unknown;
    fromPartial<I extends {} & {} & Record<Exclude<keyof I, never>, never>>(_: I): NoAuth;
};
export declare const ConnectionManagerConnection: {
    encode(message: ConnectionManagerConnection, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ConnectionManagerConnection;
    fromJSON(object: any): ConnectionManagerConnection;
    toJSON(message: ConnectionManagerConnection): unknown;
    fromPartial<I extends {
        connectionId?: string | undefined;
        subnetId?: string | undefined;
    } & {
        connectionId?: string | undefined;
        subnetId?: string | undefined;
    } & Record<Exclude<keyof I, keyof ConnectionManagerConnection>, never>>(object: I): ConnectionManagerConnection;
};
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 {};
