/**
 * SSO session and token storage types.
 */
/** How/where the SSO token is stored for cross-app access. */
export interface TokenStorageStrategy {
    get(): string | null;
    set(token: string, expiresAt: number): void;
    remove(): void;
}
/** Minimal request config type for the interceptor (no axios import). */
export interface AxiosRequestConfig {
    headers?: Record<string, string> | {
        [key: string]: string;
    };
    withCredentials?: boolean;
}
/**
 * Axios instance shape needed to attach auth interceptors (avoids hard axios dependency).
 * Use createAxiosAuthInterceptors with your axios instance.
 */
export interface AxiosAuthInterceptorInstance {
    interceptors: {
        request: {
            use(onFulfilled?: (config: AxiosRequestConfig) => AxiosRequestConfig | Promise<AxiosRequestConfig>, onRejected?: (err: unknown) => unknown): number;
        };
        response: {
            use(onFulfilled?: (res: unknown) => unknown, onRejected?: (err: unknown) => unknown): number;
        };
    };
    defaults: {
        withCredentials?: boolean;
    };
}
