import { AwsSsoConfig, AwsSsoAuthResult } from './vendor.aws.sso.types.js';
/**
 * Device authorization information
 */
interface DeviceAuthorizationInfo {
    /**
     * The client ID for SSO
     */
    clientId: string;
    /**
     * The client secret for SSO
     */
    clientSecret: string;
    /**
     * The device code for SSO
     */
    deviceCode: string;
    /**
     * The expiration time in seconds
     */
    expiresIn: number;
    /**
     * The AWS region for SSO
     */
    region: string;
}
/**
 * Auth check result
 */
export interface AuthCheckResult {
    /**
     * Whether the user is authenticated
     */
    isAuthenticated: boolean;
    /**
     * Error message if authentication failed
     */
    errorMessage?: string;
}
/**
 * Device authorization response
 */
interface DeviceAuthorizationResponse {
    deviceCode: string;
    userCode: string;
    verificationUri: string;
    verificationUriComplete: string;
    expiresIn: number;
    interval: number;
}
/**
 * Get AWS SSO configuration from the environment
 *
 * Retrieves the AWS SSO start URL and region from the environment variables.
 * These are required for SSO authentication.
 *
 * @returns {AwsSsoConfig} AWS SSO configuration
 * @throws {Error} If AWS SSO configuration is missing
 */
export declare function getAwsSsoConfig(): Promise<AwsSsoConfig>;
/**
 * Start the AWS SSO login process
 *
 * Initiates the SSO login flow by registering a client and starting device authorization.
 * Returns a verification URI and user code that the user must visit to complete authentication.
 *
 * @returns {Promise<DeviceAuthorizationResponse>} Login information including verification URI and user code
 * @throws {Error} If login initialization fails
 */
export declare function startSsoLogin(): Promise<DeviceAuthorizationResponse>;
/**
 * Poll for SSO token completion
 *
 * Polls the AWS SSO token endpoint to check if the user has completed authentication.
 * Returns the SSO token if successful.
 *
 * @returns {Promise<AwsSsoAuthResult>} SSO token data
 * @throws {Error} If polling fails or user hasn't completed authentication yet
 */
export declare function pollForSsoToken(): Promise<AwsSsoAuthResult>;
/**
 * Check if the user is authenticated with AWS SSO
 *
 * Verifies if a valid SSO token exists in the cache.
 *
 * @returns {Promise<AuthCheckResult>} Authentication status result
 */
export declare function checkSsoAuthStatus(): Promise<AuthCheckResult>;
/**
 * Get cached SSO token
 */
export declare function getCachedSsoToken(): Promise<AwsSsoAuthResult | undefined>;
/**
 * Get cached device authorization info
 * @returns Device authorization info from cache or undefined if not found
 */
export declare function getCachedDeviceAuthorizationInfo(): Promise<DeviceAuthorizationInfo | undefined>;
export {};
