import type { IncomingMessage, ServerResponse } from 'http'; type DatabaseClient = any; export interface BackendAuthProvider { initialize?: () => Promise; isAuthorized: (req: IncomingMessage, res: ServerResponse) => Promise<{ isAuthorized: true; } | { isAuthorized: false; errorMessage: string; errorCode: number; }>; extraRoutes?: { [key: string]: { secure?: boolean; handler: NodeRouteHandler; }; }; } export declare const LocalBackendAuthProvider: () => BackendAuthProvider; export interface TinaBackendOptions { /** * The database client to use. Imported from tina/__generated__/databaseClient */ databaseClient: DatabaseClient; /** * The auth provider to use */ authProvider: BackendAuthProvider; /** * Options to configure the backend */ options?: { /** * The base path for the api routes (defaults to /api/tina) * * @default /api/tina */ basePath?: string; }; } export type NodeApiHandler = (req: IncomingMessage, res: ServerResponse) => Promise; type NodeRouteHandlerOptions = Required; type NodeRouteHandler = (req: IncomingMessage, res: ServerResponse, opts: NodeRouteHandlerOptions) => Promise; export declare function TinaNodeBackend({ authProvider, databaseClient, options, }: TinaBackendOptions): NodeApiHandler; export {};