import { NextRequest, NextResponse } from "next/server"; export interface TenantContext { siteId: string; siteName: string; siteSlug: string; domain?: string | null; subdomain?: string | null; isPublished: boolean; settings?: Record | null; } type RoutingStrategy = "subdomain" | "domain" | "path"; interface MultiTenantConfig { strategy: RoutingStrategy; mainDomain: string; adminPath: string; apiPath: string; publicPath: string; excludePaths: string[]; } export declare class MultiTenantManager { private config; constructor(config?: Partial); extractTenantContext(request: NextRequest): Promise; private extractFromSubdomain; private extractFromDomain; private extractFromPath; shouldProcessAsTenant(request: NextRequest): boolean; handleTenantRouting(request: NextRequest, tenantContext: TenantContext): Promise; isAdminAccess(request: NextRequest): boolean; isApiRequest(request: NextRequest): boolean; isStaticRequest(request: NextRequest): boolean; } export declare const multiTenantManager: MultiTenantManager; export declare function multiTenantMiddleware(request: NextRequest): Promise; export declare function getTenantId(request: NextRequest | Request): string | null; export declare function getTenantSlug(request: NextRequest | Request): string | null; export declare function getTenantName(request: NextRequest | Request): string | null; export declare function getTenantDomain(request: NextRequest | Request): string | null; export declare function getTenantSubdomain(request: NextRequest | Request): string | null; export declare function getTenantContext(headers: Headers): TenantContext | null; export {}; //# sourceMappingURL=multi-tenant.d.ts.map