import { AwsSsoAuthResult, AwsSsoConfig } from './vendor.aws.sso.types.js';
import { DeviceAuthorizationResponseSchema } from './vendor.aws.sso.auth.http.js';
import { z } from 'zod';
/**
 * Register an OIDC client with AWS SSO
 * @param ssoConfig The AWS SSO configuration
 * @returns The client registration response
 */
export declare function registerClient(ssoConfig: AwsSsoConfig): Promise<{
    clientId: string;
    clientSecret: string;
}>;
/**
 * Start the device authorization flow for AWS SSO
 * @param ssoConfig The AWS SSO configuration
 * @param clientInfo The client information (id and secret) from registration
 * @returns The device authorization response
 */
export declare function startDeviceAuthorization(ssoConfig: AwsSsoConfig, clientInfo: {
    clientId: string;
    clientSecret: string;
}): Promise<z.infer<typeof DeviceAuthorizationResponseSchema>>;
/**
 * Poll for an OIDC token using the device code flow
 * @param ssoConfig The AWS SSO configuration
 * @param clientInfo The client information (id and secret) from registration
 * @param deviceCode The device code from the device authorization response
 * @param _interval The polling interval in seconds (unused but kept for API compatibility)
 * @returns The token response or null if authorization is still pending
 */
export declare function pollForToken(ssoConfig: AwsSsoConfig, clientInfo: {
    clientId: string;
    clientSecret: string;
}, deviceCode: string, _interval: number): Promise<AwsSsoAuthResult | null>;
