/**
 * Copyright (c) 2020-present, Goldman Sachs
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { type Hashable } from '@finos/legend-shared';
export declare abstract class AuthenticationStrategy implements Hashable {
    abstract get hashCode(): string;
}
export declare class DelegatedKerberosAuthenticationStrategy extends AuthenticationStrategy implements Hashable {
    serverPrincipal?: string | undefined;
    get hashCode(): string;
}
export declare class DefaultH2AuthenticationStrategy extends AuthenticationStrategy implements Hashable {
    get hashCode(): string;
}
export declare class ApiTokenAuthenticationStrategy extends AuthenticationStrategy implements Hashable {
    apiToken: string;
    constructor(apiToken: string);
    get hashCode(): string;
}
export declare class OAuthAuthenticationStrategy extends AuthenticationStrategy implements Hashable {
    oauthKey: string;
    scopeName: string;
    constructor(oauthKey: string, scopeName: string);
    get hashCode(): string;
}
export declare class SnowflakePublicAuthenticationStrategy extends AuthenticationStrategy implements Hashable {
    privateKeyVaultReference: string;
    passPhraseVaultReference: string;
    publicUserName: string;
    constructor(privateKeyVaultReference: string, passPhraseVaultReference: string, publicUserName: string);
    get hashCode(): string;
}
export declare class GCPApplicationDefaultCredentialsAuthenticationStrategy extends AuthenticationStrategy implements Hashable {
    get hashCode(): string;
}
export declare class GCPWorkloadIdentityFederationAuthenticationStrategy extends AuthenticationStrategy implements Hashable {
    serviceAccountEmail: string;
    additionalGcpScopes: string[];
    constructor(serviceAccountEmail: string, additionalGcpScopes?: string[]);
    get hashCode(): string;
}
export declare class UsernamePasswordAuthenticationStrategy extends AuthenticationStrategy implements Hashable {
    baseVaultReference?: string | undefined;
    userNameVaultReference: string;
    passwordVaultReference: string;
    constructor(userNameVaultReference: string, passwordVaultReference: string);
    get hashCode(): string;
}
export declare class MiddleTierUsernamePasswordAuthenticationStrategy extends AuthenticationStrategy implements Hashable {
    vaultReference: string;
    constructor(vaultReference: string);
    get hashCode(): string;
}
export declare class TrinoDelegatedKerberosAuthenticationStrategy extends AuthenticationStrategy implements Hashable {
    kerberosRemoteServiceName: string;
    kerberosUseCanonicalHostname: boolean;
    constructor(kerberosRemoteServiceName: string, kerberosUseCanonicalHostname: boolean);
    get hashCode(): string;
}
//# sourceMappingURL=AuthenticationStrategy.d.ts.map