import { Voice } from '../constants/index.js';
import type { Nullable } from '@voiceflow/common';
import { VoiceVersion } from '@voiceflow/voice-types';
import type { v1 } from 'ask-smapi-model';
export declare enum AccountLinkingType {
    IMPLICIT = "IMPLICIT",
    AUTH_CODE = "AUTH_CODE"
}
export declare enum ModelSensitivity {
    LOW = "LOW",
    HIGH = "HIGH",
    MEDIUM = "MEDIUM"
}
export declare enum AccountLinkingAccessTokenScheme {
    HTTP_BASIC = "HTTP_BASIC",
    REQUEST_BODY_CREDENTIALS = "REQUEST_BODY_CREDENTIALS"
}
export interface AccountLinking {
    type: v1.skill.accountLinking.AccountLinkingType;
    scopes: string[];
    domains: string[];
    clientId: string;
    clientSecret: string;
    accessTokenUrl: string;
    authorizationUrl: string;
    accessTokenScheme: v1.skill.accountLinking.AccessTokenSchemeType;
    defaultTokenExpirationInSeconds: number;
}
export interface Settings extends VoiceVersion.Settings<Voice> {
    events: Nullable<string>;
    permissions: string[];
    accountLinking: Nullable<AccountLinking>;
    customInterface: boolean;
    modelSensitivity: Nullable<ModelSensitivity>;
}
export declare const defaultAccountLinking: (accountLinking?: Nullable<Partial<AccountLinking>>) => Nullable<AccountLinking>;
export declare const defaultSettings: ({ events, permissions, accountLinking, customInterface, modelSensitivity, ...voiceSettings }?: Partial<Settings>) => Settings;
//# sourceMappingURL=settings.d.ts.map