import _m0 from 'protobufjs/minimal';
import { DataSchema } from '../../../../../yandex/cloud/datatransfer/v1/endpoint/common';
export declare const protobufPackage = "yandex.cloud.datatransfer.v1.endpoint";
export interface Parser {
    jsonParser?: GenericParserCommon | undefined;
    auditTrailsV1Parser?: AuditTrailsV1Parser | undefined;
    cloudLoggingParser?: CloudLoggingParser | undefined;
    tskvParser?: GenericParserCommon | undefined;
}
export interface GenericParserCommon {
    dataSchema?: DataSchema;
    /** Allow null keys, if no - null keys will be putted to unparsed data */
    nullKeysAllowed: boolean;
    /** Will add _rest column for all unknown fields */
    addRestColumn: boolean;
    /** Unescape string values */
    unescapeStringValues: boolean;
}
export interface AuditTrailsV1Parser {
}
export interface CloudLoggingParser {
}
export declare const Parser: {
    encode(message: Parser, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Parser;
    fromJSON(object: any): Parser;
    toJSON(message: Parser): unknown;
    fromPartial<I extends {
        jsonParser?: {
            dataSchema?: {
                jsonFields?: string | undefined;
                fields?: {
                    fields?: {
                        name?: string | undefined;
                        type?: import("../../../../../yandex/cloud/datatransfer/v1/endpoint/common").ColumnType | undefined;
                        key?: boolean | undefined;
                        required?: boolean | undefined;
                        path?: string | undefined;
                    }[] | undefined;
                } | undefined;
            } | undefined;
            nullKeysAllowed?: boolean | undefined;
            addRestColumn?: boolean | undefined;
            unescapeStringValues?: boolean | undefined;
        } | undefined;
        auditTrailsV1Parser?: {} | undefined;
        cloudLoggingParser?: {} | undefined;
        tskvParser?: {
            dataSchema?: {
                jsonFields?: string | undefined;
                fields?: {
                    fields?: {
                        name?: string | undefined;
                        type?: import("../../../../../yandex/cloud/datatransfer/v1/endpoint/common").ColumnType | undefined;
                        key?: boolean | undefined;
                        required?: boolean | undefined;
                        path?: string | undefined;
                    }[] | undefined;
                } | undefined;
            } | undefined;
            nullKeysAllowed?: boolean | undefined;
            addRestColumn?: boolean | undefined;
            unescapeStringValues?: boolean | undefined;
        } | undefined;
    } & {
        jsonParser?: ({
            dataSchema?: {
                jsonFields?: string | undefined;
                fields?: {
                    fields?: {
                        name?: string | undefined;
                        type?: import("../../../../../yandex/cloud/datatransfer/v1/endpoint/common").ColumnType | undefined;
                        key?: boolean | undefined;
                        required?: boolean | undefined;
                        path?: string | undefined;
                    }[] | undefined;
                } | undefined;
            } | undefined;
            nullKeysAllowed?: boolean | undefined;
            addRestColumn?: boolean | undefined;
            unescapeStringValues?: boolean | undefined;
        } & {
            dataSchema?: ({
                jsonFields?: string | undefined;
                fields?: {
                    fields?: {
                        name?: string | undefined;
                        type?: import("../../../../../yandex/cloud/datatransfer/v1/endpoint/common").ColumnType | undefined;
                        key?: boolean | undefined;
                        required?: boolean | undefined;
                        path?: string | undefined;
                    }[] | undefined;
                } | undefined;
            } & {
                jsonFields?: string | undefined;
                fields?: ({
                    fields?: {
                        name?: string | undefined;
                        type?: import("../../../../../yandex/cloud/datatransfer/v1/endpoint/common").ColumnType | undefined;
                        key?: boolean | undefined;
                        required?: boolean | undefined;
                        path?: string | undefined;
                    }[] | undefined;
                } & {
                    fields?: ({
                        name?: string | undefined;
                        type?: import("../../../../../yandex/cloud/datatransfer/v1/endpoint/common").ColumnType | undefined;
                        key?: boolean | undefined;
                        required?: boolean | undefined;
                        path?: string | undefined;
                    }[] & ({
                        name?: string | undefined;
                        type?: import("../../../../../yandex/cloud/datatransfer/v1/endpoint/common").ColumnType | undefined;
                        key?: boolean | undefined;
                        required?: boolean | undefined;
                        path?: string | undefined;
                    } & {
                        name?: string | undefined;
                        type?: import("../../../../../yandex/cloud/datatransfer/v1/endpoint/common").ColumnType | undefined;
                        key?: boolean | undefined;
                        required?: boolean | undefined;
                        path?: string | undefined;
                    } & Record<Exclude<keyof I["jsonParser"]["dataSchema"]["fields"]["fields"][number], keyof import("../../../../../yandex/cloud/datatransfer/v1/endpoint/common").ColSchema>, never>)[] & Record<Exclude<keyof I["jsonParser"]["dataSchema"]["fields"]["fields"], keyof {
                        name?: string | undefined;
                        type?: import("../../../../../yandex/cloud/datatransfer/v1/endpoint/common").ColumnType | undefined;
                        key?: boolean | undefined;
                        required?: boolean | undefined;
                        path?: string | undefined;
                    }[]>, never>) | undefined;
                } & Record<Exclude<keyof I["jsonParser"]["dataSchema"]["fields"], "fields">, never>) | undefined;
            } & Record<Exclude<keyof I["jsonParser"]["dataSchema"], keyof DataSchema>, never>) | undefined;
            nullKeysAllowed?: boolean | undefined;
            addRestColumn?: boolean | undefined;
            unescapeStringValues?: boolean | undefined;
        } & Record<Exclude<keyof I["jsonParser"], keyof GenericParserCommon>, never>) | undefined;
        auditTrailsV1Parser?: ({} & {} & Record<Exclude<keyof I["auditTrailsV1Parser"], never>, never>) | undefined;
        cloudLoggingParser?: ({} & {} & Record<Exclude<keyof I["cloudLoggingParser"], never>, never>) | undefined;
        tskvParser?: ({
            dataSchema?: {
                jsonFields?: string | undefined;
                fields?: {
                    fields?: {
                        name?: string | undefined;
                        type?: import("../../../../../yandex/cloud/datatransfer/v1/endpoint/common").ColumnType | undefined;
                        key?: boolean | undefined;
                        required?: boolean | undefined;
                        path?: string | undefined;
                    }[] | undefined;
                } | undefined;
            } | undefined;
            nullKeysAllowed?: boolean | undefined;
            addRestColumn?: boolean | undefined;
            unescapeStringValues?: boolean | undefined;
        } & {
            dataSchema?: ({
                jsonFields?: string | undefined;
                fields?: {
                    fields?: {
                        name?: string | undefined;
                        type?: import("../../../../../yandex/cloud/datatransfer/v1/endpoint/common").ColumnType | undefined;
                        key?: boolean | undefined;
                        required?: boolean | undefined;
                        path?: string | undefined;
                    }[] | undefined;
                } | undefined;
            } & {
                jsonFields?: string | undefined;
                fields?: ({
                    fields?: {
                        name?: string | undefined;
                        type?: import("../../../../../yandex/cloud/datatransfer/v1/endpoint/common").ColumnType | undefined;
                        key?: boolean | undefined;
                        required?: boolean | undefined;
                        path?: string | undefined;
                    }[] | undefined;
                } & {
                    fields?: ({
                        name?: string | undefined;
                        type?: import("../../../../../yandex/cloud/datatransfer/v1/endpoint/common").ColumnType | undefined;
                        key?: boolean | undefined;
                        required?: boolean | undefined;
                        path?: string | undefined;
                    }[] & ({
                        name?: string | undefined;
                        type?: import("../../../../../yandex/cloud/datatransfer/v1/endpoint/common").ColumnType | undefined;
                        key?: boolean | undefined;
                        required?: boolean | undefined;
                        path?: string | undefined;
                    } & {
                        name?: string | undefined;
                        type?: import("../../../../../yandex/cloud/datatransfer/v1/endpoint/common").ColumnType | undefined;
                        key?: boolean | undefined;
                        required?: boolean | undefined;
                        path?: string | undefined;
                    } & Record<Exclude<keyof I["tskvParser"]["dataSchema"]["fields"]["fields"][number], keyof import("../../../../../yandex/cloud/datatransfer/v1/endpoint/common").ColSchema>, never>)[] & Record<Exclude<keyof I["tskvParser"]["dataSchema"]["fields"]["fields"], keyof {
                        name?: string | undefined;
                        type?: import("../../../../../yandex/cloud/datatransfer/v1/endpoint/common").ColumnType | undefined;
                        key?: boolean | undefined;
                        required?: boolean | undefined;
                        path?: string | undefined;
                    }[]>, never>) | undefined;
                } & Record<Exclude<keyof I["tskvParser"]["dataSchema"]["fields"], "fields">, never>) | undefined;
            } & Record<Exclude<keyof I["tskvParser"]["dataSchema"], keyof DataSchema>, never>) | undefined;
            nullKeysAllowed?: boolean | undefined;
            addRestColumn?: boolean | undefined;
            unescapeStringValues?: boolean | undefined;
        } & Record<Exclude<keyof I["tskvParser"], keyof GenericParserCommon>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof Parser>, never>>(object: I): Parser;
};
export declare const GenericParserCommon: {
    encode(message: GenericParserCommon, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GenericParserCommon;
    fromJSON(object: any): GenericParserCommon;
    toJSON(message: GenericParserCommon): unknown;
    fromPartial<I extends {
        dataSchema?: {
            jsonFields?: string | undefined;
            fields?: {
                fields?: {
                    name?: string | undefined;
                    type?: import("../../../../../yandex/cloud/datatransfer/v1/endpoint/common").ColumnType | undefined;
                    key?: boolean | undefined;
                    required?: boolean | undefined;
                    path?: string | undefined;
                }[] | undefined;
            } | undefined;
        } | undefined;
        nullKeysAllowed?: boolean | undefined;
        addRestColumn?: boolean | undefined;
        unescapeStringValues?: boolean | undefined;
    } & {
        dataSchema?: ({
            jsonFields?: string | undefined;
            fields?: {
                fields?: {
                    name?: string | undefined;
                    type?: import("../../../../../yandex/cloud/datatransfer/v1/endpoint/common").ColumnType | undefined;
                    key?: boolean | undefined;
                    required?: boolean | undefined;
                    path?: string | undefined;
                }[] | undefined;
            } | undefined;
        } & {
            jsonFields?: string | undefined;
            fields?: ({
                fields?: {
                    name?: string | undefined;
                    type?: import("../../../../../yandex/cloud/datatransfer/v1/endpoint/common").ColumnType | undefined;
                    key?: boolean | undefined;
                    required?: boolean | undefined;
                    path?: string | undefined;
                }[] | undefined;
            } & {
                fields?: ({
                    name?: string | undefined;
                    type?: import("../../../../../yandex/cloud/datatransfer/v1/endpoint/common").ColumnType | undefined;
                    key?: boolean | undefined;
                    required?: boolean | undefined;
                    path?: string | undefined;
                }[] & ({
                    name?: string | undefined;
                    type?: import("../../../../../yandex/cloud/datatransfer/v1/endpoint/common").ColumnType | undefined;
                    key?: boolean | undefined;
                    required?: boolean | undefined;
                    path?: string | undefined;
                } & {
                    name?: string | undefined;
                    type?: import("../../../../../yandex/cloud/datatransfer/v1/endpoint/common").ColumnType | undefined;
                    key?: boolean | undefined;
                    required?: boolean | undefined;
                    path?: string | undefined;
                } & Record<Exclude<keyof I["dataSchema"]["fields"]["fields"][number], keyof import("../../../../../yandex/cloud/datatransfer/v1/endpoint/common").ColSchema>, never>)[] & Record<Exclude<keyof I["dataSchema"]["fields"]["fields"], keyof {
                    name?: string | undefined;
                    type?: import("../../../../../yandex/cloud/datatransfer/v1/endpoint/common").ColumnType | undefined;
                    key?: boolean | undefined;
                    required?: boolean | undefined;
                    path?: string | undefined;
                }[]>, never>) | undefined;
            } & Record<Exclude<keyof I["dataSchema"]["fields"], "fields">, never>) | undefined;
        } & Record<Exclude<keyof I["dataSchema"], keyof DataSchema>, never>) | undefined;
        nullKeysAllowed?: boolean | undefined;
        addRestColumn?: boolean | undefined;
        unescapeStringValues?: boolean | undefined;
    } & Record<Exclude<keyof I, keyof GenericParserCommon>, never>>(object: I): GenericParserCommon;
};
export declare const AuditTrailsV1Parser: {
    encode(_: AuditTrailsV1Parser, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): AuditTrailsV1Parser;
    fromJSON(_: any): AuditTrailsV1Parser;
    toJSON(_: AuditTrailsV1Parser): unknown;
    fromPartial<I extends {} & {} & Record<Exclude<keyof I, never>, never>>(_: I): AuditTrailsV1Parser;
};
export declare const CloudLoggingParser: {
    encode(_: CloudLoggingParser, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CloudLoggingParser;
    fromJSON(_: any): CloudLoggingParser;
    toJSON(_: CloudLoggingParser): unknown;
    fromPartial<I extends {} & {} & Record<Exclude<keyof I, never>, never>>(_: I): CloudLoggingParser;
};
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 {};
