import { C as CMSApiRouter, a as ContentListDiscriminator } from '../../shared/stack.sO33ZDhK.js';
import * as _tanstack_react_query from '@tanstack/react-query';
import { createApiClient } from '@btst/stack/plugins/client';
import { S as SerializedContentType, P as PaginatedContentItems, a as SerializedContentItemWithType } from '../../shared/stack.B8QD11QU.js';
import '@btst/stack/plugins/api';
import 'better-call';
import 'zod';
import '@btst/db';

interface ContentListParams {
    limit?: number;
    offset?: number;
}
/**
 * Create CMS query keys for React Query
 * Used by consumers to fetch content types and content items
 */
declare function createCMSQueryKeys(client: ReturnType<typeof createApiClient<CMSApiRouter>>, headers?: HeadersInit): {
    cmsTypes: {
        _def: readonly ["cmsTypes"];
    } & {
        list: (() => Omit<{
            queryKey: readonly ["cmsTypes", "list", string];
            queryFn: _tanstack_react_query.QueryFunction<(SerializedContentType & {
                itemCount: number;
            })[], readonly ["cmsTypes", "list", string]>;
        } & {
            _def: readonly ["cmsTypes", "list"];
        }, "_def">) & {
            _def: readonly ["cmsTypes", "list"];
        };
        detail: ((slug: string) => Omit<{
            queryKey: readonly ["cmsTypes", "detail", string];
            queryFn: _tanstack_react_query.QueryFunction<SerializedContentType | null, readonly ["cmsTypes", "detail", string]>;
        } & {
            _def: readonly ["cmsTypes", "detail"];
        }, "_def">) & {
            _def: readonly ["cmsTypes", "detail"];
        };
    };
    cmsContent: {
        _def: readonly ["cmsContent"];
    } & {
        list: ((params: {
            typeSlug: string;
        } & ContentListParams) => Omit<{
            queryKey: readonly ["cmsContent", "list", ContentListDiscriminator];
            queryFn: _tanstack_react_query.QueryFunction<PaginatedContentItems<Record<string, unknown>>, readonly ["cmsContent", "list", ContentListDiscriminator]>;
        } & {
            _def: readonly ["cmsContent", "list"];
        }, "_def">) & {
            _def: readonly ["cmsContent", "list"];
        };
        detail: ((typeSlug: string, id: string) => Omit<{
            queryKey: readonly ["cmsContent", "detail", string, string];
            queryFn: _tanstack_react_query.QueryFunction<SerializedContentItemWithType<Record<string, unknown>> | null, readonly ["cmsContent", "detail", string, string]>;
        } & {
            _def: readonly ["cmsContent", "detail"];
        }, "_def">) & {
            _def: readonly ["cmsContent", "detail"];
        };
        bySlug: ((typeSlug: string, slug: string) => Omit<{
            queryKey: readonly ["cmsContent", "bySlug", string, string, string];
            queryFn: _tanstack_react_query.QueryFunction<SerializedContentItemWithType<Record<string, unknown>> | null, readonly ["cmsContent", "bySlug", string, string, string]>;
        } & {
            _def: readonly ["cmsContent", "bySlug"];
        }, "_def">) & {
            _def: readonly ["cmsContent", "bySlug"];
        };
    };
};

export { createCMSQueryKeys };
