import * as _tanstack_react_query from '@tanstack/react-query';
import { F as FormBuilderApiRouter, a as FormsListDiscriminator, S as SubmissionsListDiscriminator } from '../../shared/stack.CLQuVdwK.js';
import { createApiClient } from '@btst/stack/plugins/client';
import { P as PaginatedForms, S as SerializedForm, c as PaginatedFormSubmissions, b as SerializedFormSubmissionWithData } from '../../shared/stack.BozPgbrZ.js';
import '@btst/stack/plugins/api';
import 'better-call';
import 'zod';
import '@btst/db';

interface FormListParams {
    status?: "active" | "inactive" | "archived";
    limit?: number;
    offset?: number;
}
interface SubmissionListParams {
    formId: string;
    limit?: number;
    offset?: number;
}
/**
 * Create Form Builder query keys for React Query
 * Used by consumers to fetch forms and submissions
 */
declare function createFormBuilderQueryKeys(client: ReturnType<typeof createApiClient<FormBuilderApiRouter>>, headers?: HeadersInit): {
    forms: {
        _def: readonly ["forms"];
    } & {
        list: ((params?: FormListParams | undefined) => Omit<{
            queryKey: readonly ["forms", "list", string, FormsListDiscriminator];
            queryFn: _tanstack_react_query.QueryFunction<PaginatedForms, readonly ["forms", "list", string, FormsListDiscriminator]>;
        } & {
            _def: readonly ["forms", "list"];
        }, "_def">) & {
            _def: readonly ["forms", "list"];
        };
        bySlug: ((slug: string) => Omit<{
            queryKey: readonly ["forms", "bySlug", string, string];
            queryFn: _tanstack_react_query.QueryFunction<SerializedForm | null, readonly ["forms", "bySlug", string, string]>;
        } & {
            _def: readonly ["forms", "bySlug"];
        }, "_def">) & {
            _def: readonly ["forms", "bySlug"];
        };
        byId: ((id: string) => Omit<{
            queryKey: readonly ["forms", "byId", string, string];
            queryFn: _tanstack_react_query.QueryFunction<SerializedForm | null, readonly ["forms", "byId", string, string]>;
        } & {
            _def: readonly ["forms", "byId"];
        }, "_def">) & {
            _def: readonly ["forms", "byId"];
        };
    };
    formSubmissions: {
        _def: readonly ["formSubmissions"];
    } & {
        list: ((params: SubmissionListParams) => Omit<{
            queryKey: readonly ["formSubmissions", "list", SubmissionsListDiscriminator];
            queryFn: _tanstack_react_query.QueryFunction<PaginatedFormSubmissions<Record<string, unknown>>, readonly ["formSubmissions", "list", SubmissionsListDiscriminator]>;
        } & {
            _def: readonly ["formSubmissions", "list"];
        }, "_def">) & {
            _def: readonly ["formSubmissions", "list"];
        };
        detail: ((formId: string, subId: string) => Omit<{
            queryKey: readonly ["formSubmissions", "detail", string, string];
            queryFn: _tanstack_react_query.QueryFunction<SerializedFormSubmissionWithData<Record<string, unknown>> | null, readonly ["formSubmissions", "detail", string, string]>;
        } & {
            _def: readonly ["formSubmissions", "detail"];
        }, "_def">) & {
            _def: readonly ["formSubmissions", "detail"];
        };
    };
};

export { createFormBuilderQueryKeys };
