import _m0 from 'protobufjs/minimal';
export declare const protobufPackage = "yandex.cloud.mdb.greenplum.v1";
export interface HBARule {
    /** Priority of the Greenplum cluster rule. */
    priority: number;
    connectionType: HBARule_ConnectionType;
    /** Specifies which database names this record matches. */
    database: string;
    /** Specifies which database role names this user matches. */
    user: string;
    /** Specifies the client machine addresses that this record matches. */
    address: string;
    /**
     * Specifies the authentication method to use when a connection matches this record.
     * https://gpdb.docs.pivotal.io/6-6/security-guide/topics/Authenticate.html
     */
    authMethod: HBARule_AuthMethod;
}
export declare enum HBARule_ConnectionType {
    CONNECTION_TYPE_UNSPECIFIED = 0,
    /** HOST - Matches connection attempts made using TCP/IP. */
    HOST = 1,
    /** HOSTSSL - Matches connection attempts made using TCP/IP, but only when the connection is made with SSL encryption. */
    HOSTSSL = 2,
    /** HOSTNOSSL - Matches connection attempts made over TCP/IP that do not use SSL. */
    HOSTNOSSL = 3,
    UNRECOGNIZED = -1
}
export declare function hBARule_ConnectionTypeFromJSON(object: any): HBARule_ConnectionType;
export declare function hBARule_ConnectionTypeToJSON(object: HBARule_ConnectionType): string;
export declare enum HBARule_AuthMethod {
    AUTH_METHOD_UNSPECIFIED = 0,
    /** MD5 - Perform SCRAM-SHA-256 or MD5 authentication to verify the user's password. */
    MD5 = 1,
    /** LDAP - Perform LDAP authentication, if MDB_GREENPLUM_LDAP flag is set */
    LDAP = 2,
    /** REJECT - Disable authentication */
    REJECT = 3,
    UNRECOGNIZED = -1
}
export declare function hBARule_AuthMethodFromJSON(object: any): HBARule_AuthMethod;
export declare function hBARule_AuthMethodToJSON(object: HBARule_AuthMethod): string;
export declare const HBARule: {
    encode(message: HBARule, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): HBARule;
    fromJSON(object: any): HBARule;
    toJSON(message: HBARule): unknown;
    fromPartial<I extends {
        priority?: number | undefined;
        connectionType?: HBARule_ConnectionType | undefined;
        database?: string | undefined;
        user?: string | undefined;
        address?: string | undefined;
        authMethod?: HBARule_AuthMethod | undefined;
    } & {
        priority?: number | undefined;
        connectionType?: HBARule_ConnectionType | undefined;
        database?: string | undefined;
        user?: string | undefined;
        address?: string | undefined;
        authMethod?: HBARule_AuthMethod | undefined;
    } & Record<Exclude<keyof I, keyof HBARule>, never>>(object: I): HBARule;
};
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 {};
