import { ADConfig, ADFSConfig, ADGroupMappingConfig, ADProviderType, AzureADB2CConfig, AzureADConfig, OnPremisesADConfig, SSOConfig } from './types'; /** * Default Azure AD scopes for common operations. */ export declare const DEFAULT_AZURE_AD_SCOPES: readonly ["openid", "profile", "email", "offline_access", "User.Read"]; /** * Graph API scopes for group membership resolution. */ export declare const GRAPH_GROUP_SCOPES: readonly ["GroupMember.Read.All", "Directory.Read.All"]; /** * Default Azure AD configuration. */ export declare const DEFAULT_AZURE_AD_CONFIG: Partial; /** * Default Azure AD B2C configuration. */ export declare const DEFAULT_AZURE_B2C_CONFIG: Partial; /** * Default AD FS configuration. */ export declare const DEFAULT_ADFS_CONFIG: Partial; /** * Default on-premises AD configuration. */ export declare const DEFAULT_ON_PREMISES_CONFIG: Partial; /** * Default SSO configuration. */ export declare const DEFAULT_SSO_CONFIG: SSOConfig; /** * Default group mapping configuration. */ export declare const DEFAULT_GROUP_MAPPING_CONFIG: ADGroupMappingConfig; /** * Default AD configuration. */ export declare const DEFAULT_AD_CONFIG: Partial; /** * Create Azure AD configuration with defaults. * * @param config - Partial Azure AD configuration * @returns Complete Azure AD configuration */ export declare function createAzureADConfig(config: Partial & Pick): AzureADConfig; /** * Create Azure AD B2C configuration with defaults. * * @param config - Partial Azure AD B2C configuration * @returns Complete Azure AD B2C configuration */ export declare function createAzureB2CConfig(config: Partial & Pick): AzureADB2CConfig; /** * Create AD FS configuration with defaults. * * @param config - Partial AD FS configuration * @returns Complete AD FS configuration */ export declare function createADFSConfig(config: Partial & Pick): ADFSConfig; /** * Create on-premises AD configuration with defaults. * * @param config - Partial on-premises configuration * @returns Complete on-premises configuration */ export declare function createOnPremisesConfig(config: Partial & Pick): OnPremisesADConfig; /** * Create complete AD configuration with appropriate defaults. * * @param providerType - The AD provider type * @param providerConfig - Provider-specific configuration * @param options - Additional options * @returns Complete AD configuration */ export declare function createADConfig(providerType: T, providerConfig: T extends 'azure-ad' ? Partial & Pick : T extends 'azure-ad-b2c' ? Partial & Pick : T extends 'adfs' ? Partial & Pick : T extends 'on-premises' ? Partial & Pick : Record, options?: Partial>): ADConfig; /** * Validation result for configuration checking. */ export interface ConfigValidationResult { /** Whether the configuration is valid */ valid: boolean; /** List of validation errors */ errors: string[]; /** List of warnings (non-blocking issues) */ warnings: string[]; } /** * Validate complete AD configuration. * * @param config - The AD configuration to validate * @returns Validation result with errors and warnings */ export declare function validateADConfig(config: ADConfig): ConfigValidationResult; /** * Get the active provider configuration from ADConfig. * * @param config - The AD configuration * @returns The active provider configuration or null */ export declare function getActiveProviderConfig(config: ADConfig): AzureADConfig | AzureADB2CConfig | ADFSConfig | OnPremisesADConfig | Record | null; /** * Get the authority URL for the configured provider. * * @param config - The AD configuration * @returns The authority URL or null */ export declare function getAuthorityUrl(config: ADConfig): string | null; /** * Get the configured scopes for the provider. * * @param config - The AD configuration * @returns Array of scopes */ export declare function getConfiguredScopes(config: ADConfig): string[]; /** * Merge scopes with Graph API scopes for group resolution. * * @param baseScopes - The base scopes * @param includeGroupScopes - Whether to include group-related scopes * @returns Merged scopes array */ export declare function mergeWithGraphScopes(baseScopes: string[], includeGroupScopes?: boolean): string[];