export type AuthErrorCode = 'UNAUTHENTICATED' | 'NO_REFRESH_TOKEN' | 'INVALID_GRANT' | 'RAPT_REQUIRED' | 'INVALID_CLIENT' | 'UNAUTHORIZED_CLIENT' | 'REFRESH_NETWORK_ERROR' | 'CONFIG_FETCH_FAILED' | 'REFRESH_UNKNOWN' | 'INSUFFICIENT_SCOPE' | 'CALLBACK_PORT_IN_USE' | 'CALLBACK_TIMEOUT' | 'BROWSER_OPEN_FAILED' | 'USER_DENIED' | 'CODE_EXCHANGE_FAILED' | 'TOKEN_RESPONSE_INVALID'; export interface AuthErrorPayload { code: AuthErrorCode; message: string; hint?: string; retriable: boolean; needsReauth: boolean; cause?: string; } export declare class AuthError extends Error { payload: AuthErrorPayload; constructor(payload: AuthErrorPayload); } interface ClassifyContext { phase: 'refresh' | 'login'; } /** * 임의의 에러 객체를 AuthErrorPayload로 분류. * Google OAuth 응답 형태: * { error: 'invalid_grant', error_description: '...' } * googleapis 라이브러리는 e.response?.data?.error 또는 e.message에 코드 포함. */ export declare function classifyError(e: unknown, ctx: ClassifyContext): AuthErrorPayload; export {};