interface DeviceAuthResponse {
    deviceCode: string;
    userCode: string;
    verificationURI: string;
    interval: number;
}
export interface KeycloakToken {
    accessToken: string;
    refreshToken: string;
    expiresAt: Date;
    refreshExpiresAt: Date;
}
export interface KeycloakTokenResponse {
    access_token: string;
    refresh_token: string;
    expires_in: number;
    refresh_expires_in: number;
}
export interface GraphToken {
    iss?: string;
    iat?: number;
    federated_graph_id: string;
    organization_id: string;
}
export interface DecodedAccessToken {
    iss?: string;
    sub?: string;
    aud?: string[] | string;
    exp?: number;
    nbf?: number;
    iat?: number;
    jti?: string;
    groups: string[];
    email: string;
}
export declare const performDeviceAuth: () => Promise<{
    success: boolean;
    response: DeviceAuthResponse;
    errorMessage?: string;
}>;
export declare const startPollingForAccessToken: ({ deviceCode, interval, }: {
    deviceCode: string;
    interval: number;
}) => Promise<{
    success: boolean;
    response?: KeycloakToken;
    errorMessage?: string;
}>;
export declare function checkAuth(): Promise<void>;
export {};
