import * as _tanstack_react_query from '@tanstack/react-query';
import { S as SerializedUIBuilderPage } from '../../../../shared/stack.kFbDspnF.js';
import { C as ComponentLayer, V as Variable } from '../../../../shared/stack.EhM4pmtN.js';
import 'zod';
import 'react';
import '../../../../shared/stack.8nldKomx.js';
import 'react-hook-form';
import 'react/jsx-runtime';

interface UseUIBuilderPagesOptions {
    /** Number of items per page (default: 10) */
    limit?: number;
    /** Whether to enable the query (default: true) */
    enabled?: boolean;
}
interface UseUIBuilderPagesResult {
    pages: SerializedUIBuilderPage[];
    total: number;
    isLoading: boolean;
    error: Error | null;
    loadMore: () => void;
    hasMore: boolean;
    isLoadingMore: boolean;
    refetch: () => void;
}
/**
 * Hook for fetching paginated UI Builder pages with load more functionality.
 *
 * @example
 * ```typescript
 * const { pages, loadMore, hasMore, isLoading } = useUIBuilderPages()
 * ```
 */
declare function useUIBuilderPages(options?: UseUIBuilderPagesOptions): UseUIBuilderPagesResult;
/**
 * Suspense variant of useUIBuilderPages
 */
declare function useSuspenseUIBuilderPages(options?: UseUIBuilderPagesOptions): {
    pages: SerializedUIBuilderPage[];
    total: number;
    loadMore: () => Promise<unknown>;
    hasMore: boolean;
    isLoadingMore: boolean;
    refetch: () => Promise<unknown>;
};
/**
 * Hook for fetching a single UI Builder page by ID
 *
 * @example
 * ```typescript
 * const { page, isLoading, error } = useUIBuilderPage(pageId)
 * ```
 */
declare function useUIBuilderPage(id: string): {
    page: SerializedUIBuilderPage | null;
    isLoading: boolean;
    error: Error | null;
    refetch: () => void;
};
/**
 * Suspense variant of useUIBuilderPage
 */
declare function useSuspenseUIBuilderPage(id: string): {
    page: SerializedUIBuilderPage | null;
    refetch: () => Promise<unknown>;
};
/**
 * Hook for fetching a UI Builder page by slug
 *
 * @example
 * ```typescript
 * const { page, isLoading, error } = useUIBuilderPageBySlug("my-page")
 * ```
 */
declare function useUIBuilderPageBySlug(slug: string): {
    page: SerializedUIBuilderPage | null;
    layers: ComponentLayer[];
    variables: Variable[];
    isLoading: boolean;
    error: Error | null;
    refetch: () => void;
};
/**
 * Suspense variant of useUIBuilderPageBySlug
 */
declare function useSuspenseUIBuilderPageBySlug(slug: string): {
    page: SerializedUIBuilderPage | null;
    layers: ComponentLayer[];
    variables: Variable[];
    refetch: () => Promise<unknown>;
};
interface CreateUIBuilderPageInput {
    slug: string;
    layers: ComponentLayer[];
    variables?: Variable[];
    status?: "published" | "draft" | "archived";
}
interface UpdateUIBuilderPageInput {
    slug?: string;
    layers?: ComponentLayer[];
    variables?: Variable[];
    status?: "published" | "draft" | "archived";
}
/**
 * Hook for creating a UI Builder page
 *
 * @example
 * ```typescript
 * const createPage = useCreateUIBuilderPage()
 *
 * createPage.mutate({
 *   slug: "my-new-page",
 *   layers: [...],
 *   status: "draft"
 * })
 * ```
 */
declare function useCreateUIBuilderPage(): _tanstack_react_query.UseMutationResult<SerializedUIBuilderPage, Error, CreateUIBuilderPageInput, unknown>;
/**
 * Hook for updating a UI Builder page
 *
 * @example
 * ```typescript
 * const updatePage = useUpdateUIBuilderPage()
 *
 * updatePage.mutate({
 *   id: pageId,
 *   data: {
 *     layers: updatedLayers,
 *     status: "published"
 *   }
 * })
 * ```
 */
declare function useUpdateUIBuilderPage(): _tanstack_react_query.UseMutationResult<SerializedUIBuilderPage, Error, {
    id: string;
    data: UpdateUIBuilderPageInput;
}, unknown>;
/**
 * Hook for deleting a UI Builder page
 *
 * @example
 * ```typescript
 * const deletePage = useDeleteUIBuilderPage()
 *
 * deletePage.mutate(pageId)
 * ```
 */
declare function useDeleteUIBuilderPage(): _tanstack_react_query.UseMutationResult<{
    success: boolean;
}, Error, string, unknown>;

export { useCreateUIBuilderPage, useDeleteUIBuilderPage, useSuspenseUIBuilderPage, useSuspenseUIBuilderPageBySlug, useSuspenseUIBuilderPages, useUIBuilderPage, useUIBuilderPageBySlug, useUIBuilderPages, useUpdateUIBuilderPage };
export type { CreateUIBuilderPageInput, UpdateUIBuilderPageInput, UseUIBuilderPagesOptions, UseUIBuilderPagesResult };
