import type { CookieConfig, CookieOptions } from './auth/cookie-types.js'; import { FirebaseAdminAuth } from './auth/firebase-admin-auth.js'; import { FirebaseAuth } from './auth/firebase-auth.js'; import type { FirebaseConfig, ServiceAccount } from './auth/firebase-types.js'; import { FirebaseEdgeError } from './auth/errors.js'; import type { CacheConfig } from './auth/cache-types.js'; /** * Official Firebase OAuth providers */ export declare const OFFICIAL_FIREBASE_OAUTH_PROVIDERS: readonly ["google", "facebook", "apple", "twitter", "github", "microsoft", "yahoo", "playgames"]; type ProviderList = (typeof OFFICIAL_FIREBASE_OAUTH_PROVIDERS)[number]; type ProviderConfig = Partial>; /** * Creates a Firebase Edge Server for authentication and session management in edge environments. * * @param config Configuration object * @param config.serviceAccount Firebase service account for admin operations * @param config.firebaseConfig Firebase client configuration * @param config.providers OAuth provider configurations (Google, GitHub, etc.) * @param config.cookies Cookie management functions (getSession, saveSession) * @param config.redirectUri OAuth callback redirect URI * @param config.cache Optional cache implementation for token caching * @param config.cacheName Optional cache key name for token storage * @param config.cookieName Optional custom session cookie name (defaults to '__session') * @param config.cookieOptions Optional cookie configuration overrides * @param config.tenantId Optional Firebase Auth tenant ID for multi-tenancy * @param config.autoLinkProviders Optional flag to automatically link accounts with same email * @param config.fetch Optional custom fetch implementation * @returns Object with authentication methods (auth, adminAuth, signOut, getUser, getGoogleLoginURL, getGitHubLoginURL, signInWithCallback, getToken) */ export declare function createFirebaseEdgeServer({ serviceAccount, firebaseConfig, providers, cookies, cookieName, cookieOptions, cache, cacheName, tenantId, redirectUri, autoLinkProviders, fetch }: { serviceAccount: ServiceAccount; firebaseConfig: FirebaseConfig; providers: ProviderConfig; cookies: CookieConfig; cache?: CacheConfig; cacheName?: string; cookieName?: string; cookieOptions?: Partial; redirectUri: string; tenantId?: string; autoLinkProviders?: boolean; fetch?: typeof globalThis.fetch; }): { auth: FirebaseAuth; adminAuth: FirebaseAdminAuth; signOut: () => void; getUser: (checkRevoked?: boolean) => Promise<{ data: null; error: null; } | { data: null; error: FirebaseEdgeError; } | { data: import("./auth/firebase-types.js").FirebaseIdTokenPayload; error: null; }>; getGoogleLoginURL: (next: string, options?: { languageCode?: string; customParameters?: Record; addScopes?: string[]; }) => Promise; getGitHubLoginURL: (next: string, options?: { customParameters?: Record; addScopes?: string[]; }) => Promise; signInWithCallback: (url: URL, expiresIn_ms?: number) => Promise<{ error: FirebaseEdgeError; data?: undefined; } | { data: string; error: null; }>; getToken: () => Promise<{ data: null; error: FirebaseEdgeError; } | { data: null; error: null; } | { data: import("./auth/firebase-types.js").FirebaseIdpSignInResponse; error: null; }>; }; export {}; //# sourceMappingURL=firebase-edge-server.d.ts.map