/**
 * @license
 * Copyright 2025 Vybestack LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import type { TokenStore } from './types.js';
/**
 * Bucket status information
 */
export interface BucketStatus {
    bucket: string;
    authenticated: boolean;
    expiry?: number;
    expiresIn?: number;
}
/**
 * Manages OAuth bucket state and resolution
 * Provides session bucket overrides, bucket resolution, and failover support
 */
export declare class OAuthBucketManager {
    private readonly tokenStore;
    private readonly sessionBuckets;
    constructor(tokenStore: TokenStore);
    /**
     * Set session bucket override for a provider
     * Session state is in-memory only and not persisted
     */
    setSessionBucket(provider: string, bucket: string): void;
    /**
     * Get session bucket override for a provider
     * Returns undefined if no session override set
     */
    getSessionBucket(provider: string): string | undefined;
    /**
     * Clear session bucket override for a provider
     */
    clearSessionBucket(provider: string): void;
    /**
     * Resolve bucket for a provider
     * Priority: session override > first profile bucket > 'default'
     */
    resolveBucket(provider: string, profileBuckets?: string[]): string;
    /**
     * Get bucket status including authentication and expiry information
     */
    getBucketStatus(provider: string, bucket: string): Promise<BucketStatus>;
    /**
     * Get status for all buckets of a provider
     */
    getAllBucketStatus(provider: string): Promise<BucketStatus[]>;
    /**
     * Validate that a bucket exists for a provider
     * Throws error if bucket not found
     */
    validateBucketExists(provider: string, bucket: string): Promise<void>;
    /**
     * Get next bucket in failover chain
     * Returns undefined if no more buckets available
     */
    getNextBucket(provider: string, currentBucket: string, profileBuckets: string[]): string | undefined;
}
