import { DeviceCodeInfo, InteractiveBrowserCredentialInBrowserOptions, InteractiveBrowserCredentialNodeOptions, TokenCredential } from "@azure/identity";
import { KeyOfType } from "./typeUtilts.js";
import { ClientDetails } from "./clientDetails.js";
interface MappingType {
    mappedTo: string;
    validNames: string[];
    isSecret?: boolean;
    isBool?: boolean;
}
type KcsbMappedKeys = KeyOfType<KustoConnectionStringBuilderBase, string | boolean | undefined>;
type KeywordMappingRecordType = Partial<Record<KcsbMappedKeys, MappingType>>;
export declare const KeywordMapping: KeywordMappingRecordType;
export declare abstract class KustoConnectionStringBuilderBase {
    static readonly DefaultDatabaseName = "NetDefaultDB";
    static readonly SecretReplacement = "****";
    dataSource?: string;
    aadFederatedSecurity?: boolean;
    initialCatalog?: string;
    aadUserId?: string;
    password?: string;
    applicationClientId?: string;
    msiClientId?: string;
    applicationKey?: string;
    applicationCertificatePrivateKey?: string;
    applicationCertificateSendX5c?: boolean;
    authorityId: string;
    deviceCodeCallback?: (response: DeviceCodeInfo) => void;
    tokenProvider?: () => Promise<string>;
    timeoutMs?: number;
    accessToken?: string;
    useDeviceCodeAuth?: boolean;
    useUserPromptAuth?: boolean;
    useAzLoginAuth?: boolean;
    useManagedIdentityAuth?: boolean;
    interactiveCredentialOptions?: InteractiveBrowserCredentialNodeOptions | InteractiveBrowserCredentialInBrowserOptions;
    tokenCredential?: TokenCredential;
    applicationCertificatePath?: string;
    applicationNameForTracing: string | null;
    userNameForTracing: string | null;
    constructor(connectionString: string);
    clientDetails(): ClientDetails;
    /**
     * Sets the connector details for tracing purposes.
     *
     * @param name  The name of the connector
     * @param version  The version of the connector
     * @param appName The name of the containing application
     * @param appVersion The version of the containing application
     * @param sendUser Whether to send the username
     * @param overrideUser Override the username ( if sendUser is True )
     * @param additionalFields Additional fields to add to the header
     */
    setConnectorDetails(name: string, version: string, appName?: string, appVersion?: string, sendUser?: boolean, overrideUser?: string, additionalFields?: [string, string][]): void;
    toString(removeSecrets?: boolean): string;
}
export default KustoConnectionStringBuilderBase;
//# sourceMappingURL=connectionBuilderBase.d.ts.map