export interface FindOptions {
    page?: number;
    pageSize?: number;
    sort?: string;
    order?: 'asc' | 'desc';
    where?: Record<string, unknown>;
    locale?: string;
}
export interface FindResult<T = Record<string, unknown>> {
    docs: T[];
    total: number;
    page: number;
    pageSize: number;
    totalPages: number;
}
export interface CollectionClient<T = Record<string, unknown>> {
    find(options?: FindOptions): Promise<FindResult<T>>;
    findById(id: string): Promise<T | null>;
    findBySlug(slug: string): Promise<T | null>;
}
export interface GlobalClient<T = Record<string, unknown>> {
    get(): Promise<T | null>;
}
export interface LayoutVariant<T = Record<string, unknown>> {
    id: string;
    collection: string;
    data: T;
}
export interface ResolveResult<T = Record<string, unknown>> {
    data: {
        id: string;
        collection: string;
        data: T;
        status: string;
        publishedAt: string | null;
        structuredData: unknown;
    };
    layout?: Record<string, LayoutVariant>;
}
export interface CMSClient {
    collection<T = Record<string, unknown>>(slug: string): CollectionClient<T>;
    global<T = Record<string, unknown>>(slug: string): GlobalClient<T>;
    resolve<T = Record<string, unknown>>(path: string): Promise<ResolveResult<T>>;
}
/** Create a typed CMS client for frontend data access. */
export declare function createCMSClient(baseUrl: string, apiKey?: string): CMSClient;
//# sourceMappingURL=client.d.ts.map