import _m0 from 'protobufjs/minimal';
import { TLSMode, Secret, ColumnValue, AltName } from '../../../../../yandex/cloud/datatransfer/v1/endpoint/common';
import { Empty } from '../../../../../google/protobuf/empty';
export declare const protobufPackage = "yandex.cloud.datatransfer.v1.endpoint";
export declare enum ClickhouseCleanupPolicy {
    CLICKHOUSE_CLEANUP_POLICY_UNSPECIFIED = 0,
    CLICKHOUSE_CLEANUP_POLICY_DISABLED = 1,
    CLICKHOUSE_CLEANUP_POLICY_DROP = 2,
    CLICKHOUSE_CLEANUP_POLICY_TRUNCATE = 3,
    UNRECOGNIZED = -1
}
export declare function clickhouseCleanupPolicyFromJSON(object: any): ClickhouseCleanupPolicy;
export declare function clickhouseCleanupPolicyToJSON(object: ClickhouseCleanupPolicy): string;
export interface ClickhouseShard {
    name: string;
    hosts: string[];
}
export interface OnPremiseClickhouse {
    shards: ClickhouseShard[];
    httpPort: number;
    nativePort: number;
    tlsMode?: TLSMode;
}
export interface ClickhouseConnectionOptions {
    onPremise?: OnPremiseClickhouse | undefined;
    mdbClusterId: string | undefined;
    user: string;
    password?: Secret;
    /** Database */
    database: string;
}
export interface ClickhouseConnection {
    connectionOptions?: ClickhouseConnectionOptions | undefined;
}
export interface ClickhouseSharding {
    columnValueHash?: ClickhouseSharding_ColumnValueHash | undefined;
    customMapping?: ClickhouseSharding_ColumnValueMapping | undefined;
    transferId?: Empty | undefined;
    roundRobin?: Empty | undefined;
}
export interface ClickhouseSharding_ColumnValueHash {
    columnName: string;
}
export interface ClickhouseSharding_ColumnValueMapping {
    columnName: string;
    mapping: ClickhouseSharding_ColumnValueMapping_ValueToShard[];
}
export interface ClickhouseSharding_ColumnValueMapping_ValueToShard {
    columnValue?: ColumnValue;
    shardName: string;
}
export interface ClickhouseSource {
    connection?: ClickhouseConnection;
    /**
     * White list of tables for replication. If none or empty list is presented - will
     * replicate all tables. Can contain * patterns.
     */
    includeTables: string[];
    /**
     * Exclude list of tables for replication. If none or empty list is presented -
     * will replicate all tables. Can contain * patterns.
     */
    excludeTables: string[];
    subnetId: string;
    securityGroups: string[];
    /**
     * Name of the ClickHouse cluster. For Managed ClickHouse that is name of
     * ShardGroup.
     */
    clickhouseClusterName: string;
}
export interface ClickhouseTarget {
    connection?: ClickhouseConnection;
    subnetId: string;
    /** Alternative table names in target */
    altNames: AltName[];
    cleanupPolicy: ClickhouseCleanupPolicy;
    sharding?: ClickhouseSharding;
    /**
     * Name of the ClickHouse cluster. For Managed ClickHouse that is name of
     * ShardGroup.
     */
    clickhouseClusterName: string;
    securityGroups: string[];
}
export declare const ClickhouseShard: {
    encode(message: ClickhouseShard, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ClickhouseShard;
    fromJSON(object: any): ClickhouseShard;
    toJSON(message: ClickhouseShard): unknown;
    fromPartial<I extends {
        name?: string | undefined;
        hosts?: string[] | undefined;
    } & {
        name?: string | undefined;
        hosts?: (string[] & string[] & Record<Exclude<keyof I["hosts"], keyof string[]>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof ClickhouseShard>, never>>(object: I): ClickhouseShard;
};
export declare const OnPremiseClickhouse: {
    encode(message: OnPremiseClickhouse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): OnPremiseClickhouse;
    fromJSON(object: any): OnPremiseClickhouse;
    toJSON(message: OnPremiseClickhouse): unknown;
    fromPartial<I extends {
        shards?: {
            name?: string | undefined;
            hosts?: string[] | undefined;
        }[] | undefined;
        httpPort?: number | undefined;
        nativePort?: number | undefined;
        tlsMode?: {
            disabled?: {} | undefined;
            enabled?: {
                caCertificate?: string | undefined;
            } | undefined;
        } | undefined;
    } & {
        shards?: ({
            name?: string | undefined;
            hosts?: string[] | undefined;
        }[] & ({
            name?: string | undefined;
            hosts?: string[] | undefined;
        } & {
            name?: string | undefined;
            hosts?: (string[] & string[] & Record<Exclude<keyof I["shards"][number]["hosts"], keyof string[]>, never>) | undefined;
        } & Record<Exclude<keyof I["shards"][number], keyof ClickhouseShard>, never>)[] & Record<Exclude<keyof I["shards"], keyof {
            name?: string | undefined;
            hosts?: string[] | undefined;
        }[]>, never>) | undefined;
        httpPort?: number | undefined;
        nativePort?: number | undefined;
        tlsMode?: ({
            disabled?: {} | undefined;
            enabled?: {
                caCertificate?: string | undefined;
            } | undefined;
        } & {
            disabled?: ({} & {} & Record<Exclude<keyof I["tlsMode"]["disabled"], never>, never>) | undefined;
            enabled?: ({
                caCertificate?: string | undefined;
            } & {
                caCertificate?: string | undefined;
            } & Record<Exclude<keyof I["tlsMode"]["enabled"], "caCertificate">, never>) | undefined;
        } & Record<Exclude<keyof I["tlsMode"], keyof TLSMode>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof OnPremiseClickhouse>, never>>(object: I): OnPremiseClickhouse;
};
export declare const ClickhouseConnectionOptions: {
    encode(message: ClickhouseConnectionOptions, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ClickhouseConnectionOptions;
    fromJSON(object: any): ClickhouseConnectionOptions;
    toJSON(message: ClickhouseConnectionOptions): unknown;
    fromPartial<I extends {
        onPremise?: {
            shards?: {
                name?: string | undefined;
                hosts?: string[] | undefined;
            }[] | undefined;
            httpPort?: number | undefined;
            nativePort?: number | undefined;
            tlsMode?: {
                disabled?: {} | undefined;
                enabled?: {
                    caCertificate?: string | undefined;
                } | undefined;
            } | undefined;
        } | undefined;
        mdbClusterId?: string | undefined;
        user?: string | undefined;
        password?: {
            raw?: string | undefined;
        } | undefined;
        database?: string | undefined;
    } & {
        onPremise?: ({
            shards?: {
                name?: string | undefined;
                hosts?: string[] | undefined;
            }[] | undefined;
            httpPort?: number | undefined;
            nativePort?: number | undefined;
            tlsMode?: {
                disabled?: {} | undefined;
                enabled?: {
                    caCertificate?: string | undefined;
                } | undefined;
            } | undefined;
        } & {
            shards?: ({
                name?: string | undefined;
                hosts?: string[] | undefined;
            }[] & ({
                name?: string | undefined;
                hosts?: string[] | undefined;
            } & {
                name?: string | undefined;
                hosts?: (string[] & string[] & Record<Exclude<keyof I["onPremise"]["shards"][number]["hosts"], keyof string[]>, never>) | undefined;
            } & Record<Exclude<keyof I["onPremise"]["shards"][number], keyof ClickhouseShard>, never>)[] & Record<Exclude<keyof I["onPremise"]["shards"], keyof {
                name?: string | undefined;
                hosts?: string[] | undefined;
            }[]>, never>) | undefined;
            httpPort?: number | undefined;
            nativePort?: number | undefined;
            tlsMode?: ({
                disabled?: {} | undefined;
                enabled?: {
                    caCertificate?: string | undefined;
                } | undefined;
            } & {
                disabled?: ({} & {} & Record<Exclude<keyof I["onPremise"]["tlsMode"]["disabled"], never>, never>) | undefined;
                enabled?: ({
                    caCertificate?: string | undefined;
                } & {
                    caCertificate?: string | undefined;
                } & Record<Exclude<keyof I["onPremise"]["tlsMode"]["enabled"], "caCertificate">, never>) | undefined;
            } & Record<Exclude<keyof I["onPremise"]["tlsMode"], keyof TLSMode>, never>) | undefined;
        } & Record<Exclude<keyof I["onPremise"], keyof OnPremiseClickhouse>, never>) | undefined;
        mdbClusterId?: string | undefined;
        user?: string | undefined;
        password?: ({
            raw?: string | undefined;
        } & {
            raw?: string | undefined;
        } & Record<Exclude<keyof I["password"], "raw">, never>) | undefined;
        database?: string | undefined;
    } & Record<Exclude<keyof I, keyof ClickhouseConnectionOptions>, never>>(object: I): ClickhouseConnectionOptions;
};
export declare const ClickhouseConnection: {
    encode(message: ClickhouseConnection, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ClickhouseConnection;
    fromJSON(object: any): ClickhouseConnection;
    toJSON(message: ClickhouseConnection): unknown;
    fromPartial<I extends {
        connectionOptions?: {
            onPremise?: {
                shards?: {
                    name?: string | undefined;
                    hosts?: string[] | undefined;
                }[] | undefined;
                httpPort?: number | undefined;
                nativePort?: number | undefined;
                tlsMode?: {
                    disabled?: {} | undefined;
                    enabled?: {
                        caCertificate?: string | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
            mdbClusterId?: string | undefined;
            user?: string | undefined;
            password?: {
                raw?: string | undefined;
            } | undefined;
            database?: string | undefined;
        } | undefined;
    } & {
        connectionOptions?: ({
            onPremise?: {
                shards?: {
                    name?: string | undefined;
                    hosts?: string[] | undefined;
                }[] | undefined;
                httpPort?: number | undefined;
                nativePort?: number | undefined;
                tlsMode?: {
                    disabled?: {} | undefined;
                    enabled?: {
                        caCertificate?: string | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
            mdbClusterId?: string | undefined;
            user?: string | undefined;
            password?: {
                raw?: string | undefined;
            } | undefined;
            database?: string | undefined;
        } & {
            onPremise?: ({
                shards?: {
                    name?: string | undefined;
                    hosts?: string[] | undefined;
                }[] | undefined;
                httpPort?: number | undefined;
                nativePort?: number | undefined;
                tlsMode?: {
                    disabled?: {} | undefined;
                    enabled?: {
                        caCertificate?: string | undefined;
                    } | undefined;
                } | undefined;
            } & {
                shards?: ({
                    name?: string | undefined;
                    hosts?: string[] | undefined;
                }[] & ({
                    name?: string | undefined;
                    hosts?: string[] | undefined;
                } & {
                    name?: string | undefined;
                    hosts?: (string[] & string[] & Record<Exclude<keyof I["connectionOptions"]["onPremise"]["shards"][number]["hosts"], keyof string[]>, never>) | undefined;
                } & Record<Exclude<keyof I["connectionOptions"]["onPremise"]["shards"][number], keyof ClickhouseShard>, never>)[] & Record<Exclude<keyof I["connectionOptions"]["onPremise"]["shards"], keyof {
                    name?: string | undefined;
                    hosts?: string[] | undefined;
                }[]>, never>) | undefined;
                httpPort?: number | undefined;
                nativePort?: number | undefined;
                tlsMode?: ({
                    disabled?: {} | undefined;
                    enabled?: {
                        caCertificate?: string | undefined;
                    } | undefined;
                } & {
                    disabled?: ({} & {} & Record<Exclude<keyof I["connectionOptions"]["onPremise"]["tlsMode"]["disabled"], never>, never>) | undefined;
                    enabled?: ({
                        caCertificate?: string | undefined;
                    } & {
                        caCertificate?: string | undefined;
                    } & Record<Exclude<keyof I["connectionOptions"]["onPremise"]["tlsMode"]["enabled"], "caCertificate">, never>) | undefined;
                } & Record<Exclude<keyof I["connectionOptions"]["onPremise"]["tlsMode"], keyof TLSMode>, never>) | undefined;
            } & Record<Exclude<keyof I["connectionOptions"]["onPremise"], keyof OnPremiseClickhouse>, never>) | undefined;
            mdbClusterId?: string | undefined;
            user?: string | undefined;
            password?: ({
                raw?: string | undefined;
            } & {
                raw?: string | undefined;
            } & Record<Exclude<keyof I["connectionOptions"]["password"], "raw">, never>) | undefined;
            database?: string | undefined;
        } & Record<Exclude<keyof I["connectionOptions"], keyof ClickhouseConnectionOptions>, never>) | undefined;
    } & Record<Exclude<keyof I, "connectionOptions">, never>>(object: I): ClickhouseConnection;
};
export declare const ClickhouseSharding: {
    encode(message: ClickhouseSharding, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ClickhouseSharding;
    fromJSON(object: any): ClickhouseSharding;
    toJSON(message: ClickhouseSharding): unknown;
    fromPartial<I extends {
        columnValueHash?: {
            columnName?: string | undefined;
        } | undefined;
        customMapping?: {
            columnName?: string | undefined;
            mapping?: {
                columnValue?: {
                    stringValue?: string | undefined;
                } | undefined;
                shardName?: string | undefined;
            }[] | undefined;
        } | undefined;
        transferId?: {} | undefined;
        roundRobin?: {} | undefined;
    } & {
        columnValueHash?: ({
            columnName?: string | undefined;
        } & {
            columnName?: string | undefined;
        } & Record<Exclude<keyof I["columnValueHash"], "columnName">, never>) | undefined;
        customMapping?: ({
            columnName?: string | undefined;
            mapping?: {
                columnValue?: {
                    stringValue?: string | undefined;
                } | undefined;
                shardName?: string | undefined;
            }[] | undefined;
        } & {
            columnName?: string | undefined;
            mapping?: ({
                columnValue?: {
                    stringValue?: string | undefined;
                } | undefined;
                shardName?: string | undefined;
            }[] & ({
                columnValue?: {
                    stringValue?: string | undefined;
                } | undefined;
                shardName?: string | undefined;
            } & {
                columnValue?: ({
                    stringValue?: string | undefined;
                } & {
                    stringValue?: string | undefined;
                } & Record<Exclude<keyof I["customMapping"]["mapping"][number]["columnValue"], "stringValue">, never>) | undefined;
                shardName?: string | undefined;
            } & Record<Exclude<keyof I["customMapping"]["mapping"][number], keyof ClickhouseSharding_ColumnValueMapping_ValueToShard>, never>)[] & Record<Exclude<keyof I["customMapping"]["mapping"], keyof {
                columnValue?: {
                    stringValue?: string | undefined;
                } | undefined;
                shardName?: string | undefined;
            }[]>, never>) | undefined;
        } & Record<Exclude<keyof I["customMapping"], keyof ClickhouseSharding_ColumnValueMapping>, never>) | undefined;
        transferId?: ({} & {} & Record<Exclude<keyof I["transferId"], never>, never>) | undefined;
        roundRobin?: ({} & {} & Record<Exclude<keyof I["roundRobin"], never>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof ClickhouseSharding>, never>>(object: I): ClickhouseSharding;
};
export declare const ClickhouseSharding_ColumnValueHash: {
    encode(message: ClickhouseSharding_ColumnValueHash, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ClickhouseSharding_ColumnValueHash;
    fromJSON(object: any): ClickhouseSharding_ColumnValueHash;
    toJSON(message: ClickhouseSharding_ColumnValueHash): unknown;
    fromPartial<I extends {
        columnName?: string | undefined;
    } & {
        columnName?: string | undefined;
    } & Record<Exclude<keyof I, "columnName">, never>>(object: I): ClickhouseSharding_ColumnValueHash;
};
export declare const ClickhouseSharding_ColumnValueMapping: {
    encode(message: ClickhouseSharding_ColumnValueMapping, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ClickhouseSharding_ColumnValueMapping;
    fromJSON(object: any): ClickhouseSharding_ColumnValueMapping;
    toJSON(message: ClickhouseSharding_ColumnValueMapping): unknown;
    fromPartial<I extends {
        columnName?: string | undefined;
        mapping?: {
            columnValue?: {
                stringValue?: string | undefined;
            } | undefined;
            shardName?: string | undefined;
        }[] | undefined;
    } & {
        columnName?: string | undefined;
        mapping?: ({
            columnValue?: {
                stringValue?: string | undefined;
            } | undefined;
            shardName?: string | undefined;
        }[] & ({
            columnValue?: {
                stringValue?: string | undefined;
            } | undefined;
            shardName?: string | undefined;
        } & {
            columnValue?: ({
                stringValue?: string | undefined;
            } & {
                stringValue?: string | undefined;
            } & Record<Exclude<keyof I["mapping"][number]["columnValue"], "stringValue">, never>) | undefined;
            shardName?: string | undefined;
        } & Record<Exclude<keyof I["mapping"][number], keyof ClickhouseSharding_ColumnValueMapping_ValueToShard>, never>)[] & Record<Exclude<keyof I["mapping"], keyof {
            columnValue?: {
                stringValue?: string | undefined;
            } | undefined;
            shardName?: string | undefined;
        }[]>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof ClickhouseSharding_ColumnValueMapping>, never>>(object: I): ClickhouseSharding_ColumnValueMapping;
};
export declare const ClickhouseSharding_ColumnValueMapping_ValueToShard: {
    encode(message: ClickhouseSharding_ColumnValueMapping_ValueToShard, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ClickhouseSharding_ColumnValueMapping_ValueToShard;
    fromJSON(object: any): ClickhouseSharding_ColumnValueMapping_ValueToShard;
    toJSON(message: ClickhouseSharding_ColumnValueMapping_ValueToShard): unknown;
    fromPartial<I extends {
        columnValue?: {
            stringValue?: string | undefined;
        } | undefined;
        shardName?: string | undefined;
    } & {
        columnValue?: ({
            stringValue?: string | undefined;
        } & {
            stringValue?: string | undefined;
        } & Record<Exclude<keyof I["columnValue"], "stringValue">, never>) | undefined;
        shardName?: string | undefined;
    } & Record<Exclude<keyof I, keyof ClickhouseSharding_ColumnValueMapping_ValueToShard>, never>>(object: I): ClickhouseSharding_ColumnValueMapping_ValueToShard;
};
export declare const ClickhouseSource: {
    encode(message: ClickhouseSource, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ClickhouseSource;
    fromJSON(object: any): ClickhouseSource;
    toJSON(message: ClickhouseSource): unknown;
    fromPartial<I extends {
        connection?: {
            connectionOptions?: {
                onPremise?: {
                    shards?: {
                        name?: string | undefined;
                        hosts?: string[] | undefined;
                    }[] | undefined;
                    httpPort?: number | undefined;
                    nativePort?: number | undefined;
                    tlsMode?: {
                        disabled?: {} | undefined;
                        enabled?: {
                            caCertificate?: string | undefined;
                        } | undefined;
                    } | undefined;
                } | undefined;
                mdbClusterId?: string | undefined;
                user?: string | undefined;
                password?: {
                    raw?: string | undefined;
                } | undefined;
                database?: string | undefined;
            } | undefined;
        } | undefined;
        includeTables?: string[] | undefined;
        excludeTables?: string[] | undefined;
        subnetId?: string | undefined;
        securityGroups?: string[] | undefined;
        clickhouseClusterName?: string | undefined;
    } & {
        connection?: ({
            connectionOptions?: {
                onPremise?: {
                    shards?: {
                        name?: string | undefined;
                        hosts?: string[] | undefined;
                    }[] | undefined;
                    httpPort?: number | undefined;
                    nativePort?: number | undefined;
                    tlsMode?: {
                        disabled?: {} | undefined;
                        enabled?: {
                            caCertificate?: string | undefined;
                        } | undefined;
                    } | undefined;
                } | undefined;
                mdbClusterId?: string | undefined;
                user?: string | undefined;
                password?: {
                    raw?: string | undefined;
                } | undefined;
                database?: string | undefined;
            } | undefined;
        } & {
            connectionOptions?: ({
                onPremise?: {
                    shards?: {
                        name?: string | undefined;
                        hosts?: string[] | undefined;
                    }[] | undefined;
                    httpPort?: number | undefined;
                    nativePort?: number | undefined;
                    tlsMode?: {
                        disabled?: {} | undefined;
                        enabled?: {
                            caCertificate?: string | undefined;
                        } | undefined;
                    } | undefined;
                } | undefined;
                mdbClusterId?: string | undefined;
                user?: string | undefined;
                password?: {
                    raw?: string | undefined;
                } | undefined;
                database?: string | undefined;
            } & {
                onPremise?: ({
                    shards?: {
                        name?: string | undefined;
                        hosts?: string[] | undefined;
                    }[] | undefined;
                    httpPort?: number | undefined;
                    nativePort?: number | undefined;
                    tlsMode?: {
                        disabled?: {} | undefined;
                        enabled?: {
                            caCertificate?: string | undefined;
                        } | undefined;
                    } | undefined;
                } & {
                    shards?: ({
                        name?: string | undefined;
                        hosts?: string[] | undefined;
                    }[] & ({
                        name?: string | undefined;
                        hosts?: string[] | undefined;
                    } & {
                        name?: string | undefined;
                        hosts?: (string[] & string[] & Record<Exclude<keyof I["connection"]["connectionOptions"]["onPremise"]["shards"][number]["hosts"], keyof string[]>, never>) | undefined;
                    } & Record<Exclude<keyof I["connection"]["connectionOptions"]["onPremise"]["shards"][number], keyof ClickhouseShard>, never>)[] & Record<Exclude<keyof I["connection"]["connectionOptions"]["onPremise"]["shards"], keyof {
                        name?: string | undefined;
                        hosts?: string[] | undefined;
                    }[]>, never>) | undefined;
                    httpPort?: number | undefined;
                    nativePort?: number | undefined;
                    tlsMode?: ({
                        disabled?: {} | undefined;
                        enabled?: {
                            caCertificate?: string | undefined;
                        } | undefined;
                    } & {
                        disabled?: ({} & {} & Record<Exclude<keyof I["connection"]["connectionOptions"]["onPremise"]["tlsMode"]["disabled"], never>, never>) | undefined;
                        enabled?: ({
                            caCertificate?: string | undefined;
                        } & {
                            caCertificate?: string | undefined;
                        } & Record<Exclude<keyof I["connection"]["connectionOptions"]["onPremise"]["tlsMode"]["enabled"], "caCertificate">, never>) | undefined;
                    } & Record<Exclude<keyof I["connection"]["connectionOptions"]["onPremise"]["tlsMode"], keyof TLSMode>, never>) | undefined;
                } & Record<Exclude<keyof I["connection"]["connectionOptions"]["onPremise"], keyof OnPremiseClickhouse>, never>) | undefined;
                mdbClusterId?: string | undefined;
                user?: string | undefined;
                password?: ({
                    raw?: string | undefined;
                } & {
                    raw?: string | undefined;
                } & Record<Exclude<keyof I["connection"]["connectionOptions"]["password"], "raw">, never>) | undefined;
                database?: string | undefined;
            } & Record<Exclude<keyof I["connection"]["connectionOptions"], keyof ClickhouseConnectionOptions>, never>) | undefined;
        } & Record<Exclude<keyof I["connection"], "connectionOptions">, never>) | undefined;
        includeTables?: (string[] & string[] & Record<Exclude<keyof I["includeTables"], keyof string[]>, never>) | undefined;
        excludeTables?: (string[] & string[] & Record<Exclude<keyof I["excludeTables"], keyof string[]>, never>) | undefined;
        subnetId?: string | undefined;
        securityGroups?: (string[] & string[] & Record<Exclude<keyof I["securityGroups"], keyof string[]>, never>) | undefined;
        clickhouseClusterName?: string | undefined;
    } & Record<Exclude<keyof I, keyof ClickhouseSource>, never>>(object: I): ClickhouseSource;
};
export declare const ClickhouseTarget: {
    encode(message: ClickhouseTarget, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ClickhouseTarget;
    fromJSON(object: any): ClickhouseTarget;
    toJSON(message: ClickhouseTarget): unknown;
    fromPartial<I extends {
        connection?: {
            connectionOptions?: {
                onPremise?: {
                    shards?: {
                        name?: string | undefined;
                        hosts?: string[] | undefined;
                    }[] | undefined;
                    httpPort?: number | undefined;
                    nativePort?: number | undefined;
                    tlsMode?: {
                        disabled?: {} | undefined;
                        enabled?: {
                            caCertificate?: string | undefined;
                        } | undefined;
                    } | undefined;
                } | undefined;
                mdbClusterId?: string | undefined;
                user?: string | undefined;
                password?: {
                    raw?: string | undefined;
                } | undefined;
                database?: string | undefined;
            } | undefined;
        } | undefined;
        subnetId?: string | undefined;
        altNames?: {
            fromName?: string | undefined;
            toName?: string | undefined;
        }[] | undefined;
        cleanupPolicy?: ClickhouseCleanupPolicy | undefined;
        sharding?: {
            columnValueHash?: {
                columnName?: string | undefined;
            } | undefined;
            customMapping?: {
                columnName?: string | undefined;
                mapping?: {
                    columnValue?: {
                        stringValue?: string | undefined;
                    } | undefined;
                    shardName?: string | undefined;
                }[] | undefined;
            } | undefined;
            transferId?: {} | undefined;
            roundRobin?: {} | undefined;
        } | undefined;
        clickhouseClusterName?: string | undefined;
        securityGroups?: string[] | undefined;
    } & {
        connection?: ({
            connectionOptions?: {
                onPremise?: {
                    shards?: {
                        name?: string | undefined;
                        hosts?: string[] | undefined;
                    }[] | undefined;
                    httpPort?: number | undefined;
                    nativePort?: number | undefined;
                    tlsMode?: {
                        disabled?: {} | undefined;
                        enabled?: {
                            caCertificate?: string | undefined;
                        } | undefined;
                    } | undefined;
                } | undefined;
                mdbClusterId?: string | undefined;
                user?: string | undefined;
                password?: {
                    raw?: string | undefined;
                } | undefined;
                database?: string | undefined;
            } | undefined;
        } & {
            connectionOptions?: ({
                onPremise?: {
                    shards?: {
                        name?: string | undefined;
                        hosts?: string[] | undefined;
                    }[] | undefined;
                    httpPort?: number | undefined;
                    nativePort?: number | undefined;
                    tlsMode?: {
                        disabled?: {} | undefined;
                        enabled?: {
                            caCertificate?: string | undefined;
                        } | undefined;
                    } | undefined;
                } | undefined;
                mdbClusterId?: string | undefined;
                user?: string | undefined;
                password?: {
                    raw?: string | undefined;
                } | undefined;
                database?: string | undefined;
            } & {
                onPremise?: ({
                    shards?: {
                        name?: string | undefined;
                        hosts?: string[] | undefined;
                    }[] | undefined;
                    httpPort?: number | undefined;
                    nativePort?: number | undefined;
                    tlsMode?: {
                        disabled?: {} | undefined;
                        enabled?: {
                            caCertificate?: string | undefined;
                        } | undefined;
                    } | undefined;
                } & {
                    shards?: ({
                        name?: string | undefined;
                        hosts?: string[] | undefined;
                    }[] & ({
                        name?: string | undefined;
                        hosts?: string[] | undefined;
                    } & {
                        name?: string | undefined;
                        hosts?: (string[] & string[] & Record<Exclude<keyof I["connection"]["connectionOptions"]["onPremise"]["shards"][number]["hosts"], keyof string[]>, never>) | undefined;
                    } & Record<Exclude<keyof I["connection"]["connectionOptions"]["onPremise"]["shards"][number], keyof ClickhouseShard>, never>)[] & Record<Exclude<keyof I["connection"]["connectionOptions"]["onPremise"]["shards"], keyof {
                        name?: string | undefined;
                        hosts?: string[] | undefined;
                    }[]>, never>) | undefined;
                    httpPort?: number | undefined;
                    nativePort?: number | undefined;
                    tlsMode?: ({
                        disabled?: {} | undefined;
                        enabled?: {
                            caCertificate?: string | undefined;
                        } | undefined;
                    } & {
                        disabled?: ({} & {} & Record<Exclude<keyof I["connection"]["connectionOptions"]["onPremise"]["tlsMode"]["disabled"], never>, never>) | undefined;
                        enabled?: ({
                            caCertificate?: string | undefined;
                        } & {
                            caCertificate?: string | undefined;
                        } & Record<Exclude<keyof I["connection"]["connectionOptions"]["onPremise"]["tlsMode"]["enabled"], "caCertificate">, never>) | undefined;
                    } & Record<Exclude<keyof I["connection"]["connectionOptions"]["onPremise"]["tlsMode"], keyof TLSMode>, never>) | undefined;
                } & Record<Exclude<keyof I["connection"]["connectionOptions"]["onPremise"], keyof OnPremiseClickhouse>, never>) | undefined;
                mdbClusterId?: string | undefined;
                user?: string | undefined;
                password?: ({
                    raw?: string | undefined;
                } & {
                    raw?: string | undefined;
                } & Record<Exclude<keyof I["connection"]["connectionOptions"]["password"], "raw">, never>) | undefined;
                database?: string | undefined;
            } & Record<Exclude<keyof I["connection"]["connectionOptions"], keyof ClickhouseConnectionOptions>, never>) | undefined;
        } & Record<Exclude<keyof I["connection"], "connectionOptions">, never>) | undefined;
        subnetId?: string | undefined;
        altNames?: ({
            fromName?: string | undefined;
            toName?: string | undefined;
        }[] & ({
            fromName?: string | undefined;
            toName?: string | undefined;
        } & {
            fromName?: string | undefined;
            toName?: string | undefined;
        } & Record<Exclude<keyof I["altNames"][number], keyof AltName>, never>)[] & Record<Exclude<keyof I["altNames"], keyof {
            fromName?: string | undefined;
            toName?: string | undefined;
        }[]>, never>) | undefined;
        cleanupPolicy?: ClickhouseCleanupPolicy | undefined;
        sharding?: ({
            columnValueHash?: {
                columnName?: string | undefined;
            } | undefined;
            customMapping?: {
                columnName?: string | undefined;
                mapping?: {
                    columnValue?: {
                        stringValue?: string | undefined;
                    } | undefined;
                    shardName?: string | undefined;
                }[] | undefined;
            } | undefined;
            transferId?: {} | undefined;
            roundRobin?: {} | undefined;
        } & {
            columnValueHash?: ({
                columnName?: string | undefined;
            } & {
                columnName?: string | undefined;
            } & Record<Exclude<keyof I["sharding"]["columnValueHash"], "columnName">, never>) | undefined;
            customMapping?: ({
                columnName?: string | undefined;
                mapping?: {
                    columnValue?: {
                        stringValue?: string | undefined;
                    } | undefined;
                    shardName?: string | undefined;
                }[] | undefined;
            } & {
                columnName?: string | undefined;
                mapping?: ({
                    columnValue?: {
                        stringValue?: string | undefined;
                    } | undefined;
                    shardName?: string | undefined;
                }[] & ({
                    columnValue?: {
                        stringValue?: string | undefined;
                    } | undefined;
                    shardName?: string | undefined;
                } & {
                    columnValue?: ({
                        stringValue?: string | undefined;
                    } & {
                        stringValue?: string | undefined;
                    } & Record<Exclude<keyof I["sharding"]["customMapping"]["mapping"][number]["columnValue"], "stringValue">, never>) | undefined;
                    shardName?: string | undefined;
                } & Record<Exclude<keyof I["sharding"]["customMapping"]["mapping"][number], keyof ClickhouseSharding_ColumnValueMapping_ValueToShard>, never>)[] & Record<Exclude<keyof I["sharding"]["customMapping"]["mapping"], keyof {
                    columnValue?: {
                        stringValue?: string | undefined;
                    } | undefined;
                    shardName?: string | undefined;
                }[]>, never>) | undefined;
            } & Record<Exclude<keyof I["sharding"]["customMapping"], keyof ClickhouseSharding_ColumnValueMapping>, never>) | undefined;
            transferId?: ({} & {} & Record<Exclude<keyof I["sharding"]["transferId"], never>, never>) | undefined;
            roundRobin?: ({} & {} & Record<Exclude<keyof I["sharding"]["roundRobin"], never>, never>) | undefined;
        } & Record<Exclude<keyof I["sharding"], keyof ClickhouseSharding>, never>) | undefined;
        clickhouseClusterName?: string | undefined;
        securityGroups?: (string[] & string[] & Record<Exclude<keyof I["securityGroups"], keyof string[]>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof ClickhouseTarget>, never>>(object: I): ClickhouseTarget;
};
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 {};
