/**
 * @license
 * Copyright 2025 Vybestack LLC
 * SPDX-License-Identifier: Apache-2.0
 */
/**
 * Multi-bucket authentication result
 */
export interface MultiBucketAuthResult {
    authenticatedBuckets: string[];
    failedBuckets: string[];
    cancelled: boolean;
    error?: string;
}
/**
 * Multi-bucket authentication options
 */
export interface MultiBucketAuthOptions {
    provider: string;
    buckets: string[];
    delay?: number;
    showPrompt?: boolean;
    autoOpenBrowser?: boolean;
}
/**
 * Callback types for multi-bucket authentication
 */
export interface MultiBucketAuthCallbacks {
    onAuthBucket: (provider: string, bucket: string, index: number, total: number) => Promise<void>;
    onPrompt: (provider: string, bucket: string) => Promise<boolean>;
    onDelay: (ms: number, bucket: string) => Promise<void>;
    getEphemeralSetting: <T>(key: string) => T | undefined;
}
/**
 * Multi-bucket authenticator for OAuth flows
 *
 * Handles sequential authentication of multiple OAuth buckets with:
 * - Timing controls (delay or prompt-based)
 * - Browser auto-open control
 * - User notifications
 * - Partial cancellation support
 */
export declare class MultiBucketAuthenticator {
    private readonly onAuthBucket;
    private readonly onPrompt;
    private readonly onDelay;
    private readonly getEphemeralSetting;
    private cancelled;
    constructor(onAuthBucket: (provider: string, bucket: string, index: number, total: number) => Promise<void>, onPrompt: (provider: string, bucket: string) => Promise<boolean>, onDelay: (ms: number, bucket: string) => Promise<void>, getEphemeralSetting?: <T>(key: string) => T | undefined);
    /**
     * Create authenticator from callbacks object
     */
    static fromCallbacks(callbacks: MultiBucketAuthCallbacks): MultiBucketAuthenticator;
    /**
     * Authenticate multiple buckets sequentially with timing controls
     */
    authenticateMultipleBuckets(options: MultiBucketAuthOptions): Promise<MultiBucketAuthResult>;
    /**
     * Request cancellation of multi-bucket auth flow
     */
    cancel(): void;
}
