import type { KioskConfig, SyncOptions } from "./types";
export declare function useKioskContent(config: KioskConfig): {
    content: {
        type: "text" | "image" | "video" | "template";
        status: "published" | "draft" | "archived";
        id: string;
        description: string;
        createdBy: string;
        createdAt: number;
        updatedAt: number;
        version: number;
        title: string;
        projectIds: string[];
        metadata: Record<string, any>;
        mediaUrl?: string | undefined;
        templateId?: string | undefined;
        templateValues?: {
            groups: Record<string, Record<string, any>>;
            ungrouped: Record<string, any>;
            _template?: {
                id: string;
                version: number;
            } | undefined;
        } | undefined;
        templateVersion?: number | undefined;
        data?: Record<string, any> | undefined;
    }[];
    loading: boolean;
    error: Error | null;
    isSyncing: boolean;
    isOnline: boolean;
};
export declare function useProjectContent(config: KioskConfig, projectId: string): {
    content: {
        type: "text" | "image" | "video" | "template";
        status: "published" | "draft" | "archived";
        id: string;
        description: string;
        createdBy: string;
        createdAt: number;
        updatedAt: number;
        version: number;
        title: string;
        projectIds: string[];
        metadata: Record<string, any>;
        mediaUrl?: string | undefined;
        templateId?: string | undefined;
        templateValues?: {
            groups: Record<string, Record<string, any>>;
            ungrouped: Record<string, any>;
            _template?: {
                id: string;
                version: number;
            } | undefined;
        } | undefined;
        templateVersion?: number | undefined;
        data?: Record<string, any> | undefined;
    }[];
    loading: boolean;
    error: Error | null;
    isOnline: boolean;
};
export declare function useContentWithTemplate(config: KioskConfig, contentId: string): {
    content: {
        type: "text" | "image" | "video" | "template";
        status: "published" | "draft" | "archived";
        id: string;
        description: string;
        createdBy: string;
        createdAt: number;
        updatedAt: number;
        version: number;
        title: string;
        projectIds: string[];
        metadata: Record<string, any>;
        mediaUrl?: string | undefined;
        templateId?: string | undefined;
        templateValues?: {
            groups: Record<string, Record<string, any>>;
            ungrouped: Record<string, any>;
            _template?: {
                id: string;
                version: number;
            } | undefined;
        } | undefined;
        templateVersion?: number | undefined;
        data?: Record<string, any> | undefined;
    } | null;
    template: {
        type: string;
        id: string;
        name: string;
        description: string;
        fields: {
            type: "number" | "boolean" | "text" | "select" | "rich-text" | "image" | "video" | "audio" | "date" | "multi-select" | "color";
            id: string;
            name: string;
            label: string;
            options?: string[] | undefined;
            validation?: {
                required: boolean;
                min?: number | undefined;
                max?: number | undefined;
                pattern?: string | undefined;
                customError?: string | undefined;
            } | undefined;
            description?: string | undefined;
            defaultValue?: any;
            step?: number | undefined;
            groupId?: string | undefined;
        }[];
        groups: Record<string, {
            id: string;
            name: string;
            order: number;
            fieldIds: string[];
            description?: string | undefined;
            normalizedName?: string | undefined;
        }>;
        ungroupedFieldIds: string[];
        groupOrder: string[];
        createdBy: string;
        createdAt: number;
        updatedAt: number;
        version: number;
        settings: {
            cacheStrategy: "memory" | "local" | "none";
            offlineSupport: boolean;
            syncInterval?: number | undefined;
        };
    } | null;
    loading: boolean;
    error: Error | null;
    isOnline: boolean;
};
export declare function useTemplates(config: KioskConfig): {
    templates: {
        type: string;
        id: string;
        name: string;
        description: string;
        fields: {
            type: "number" | "boolean" | "text" | "select" | "rich-text" | "image" | "video" | "audio" | "date" | "multi-select" | "color";
            id: string;
            name: string;
            label: string;
            options?: string[] | undefined;
            validation?: {
                required: boolean;
                min?: number | undefined;
                max?: number | undefined;
                pattern?: string | undefined;
                customError?: string | undefined;
            } | undefined;
            description?: string | undefined;
            defaultValue?: any;
            step?: number | undefined;
            groupId?: string | undefined;
        }[];
        groups: Record<string, {
            id: string;
            name: string;
            order: number;
            fieldIds: string[];
            description?: string | undefined;
            normalizedName?: string | undefined;
        }>;
        ungroupedFieldIds: string[];
        groupOrder: string[];
        createdBy: string;
        createdAt: number;
        updatedAt: number;
        version: number;
        settings: {
            cacheStrategy: "memory" | "local" | "none";
            offlineSupport: boolean;
            syncInterval?: number | undefined;
        };
    }[];
    loading: boolean;
    error: Error | null;
    isOnline: boolean;
};
export declare function useTemplate(config: KioskConfig, templateId: string): {
    template: {
        type: string;
        id: string;
        name: string;
        description: string;
        fields: {
            type: "number" | "boolean" | "text" | "select" | "rich-text" | "image" | "video" | "audio" | "date" | "multi-select" | "color";
            id: string;
            name: string;
            label: string;
            options?: string[] | undefined;
            validation?: {
                required: boolean;
                min?: number | undefined;
                max?: number | undefined;
                pattern?: string | undefined;
                customError?: string | undefined;
            } | undefined;
            description?: string | undefined;
            defaultValue?: any;
            step?: number | undefined;
            groupId?: string | undefined;
        }[];
        groups: Record<string, {
            id: string;
            name: string;
            order: number;
            fieldIds: string[];
            description?: string | undefined;
            normalizedName?: string | undefined;
        }>;
        ungroupedFieldIds: string[];
        groupOrder: string[];
        createdBy: string;
        createdAt: number;
        updatedAt: number;
        version: number;
        settings: {
            cacheStrategy: "memory" | "local" | "none";
            offlineSupport: boolean;
            syncInterval?: number | undefined;
        };
    } | null;
    loading: boolean;
    error: Error | null;
    isOnline: boolean;
};
export declare function useTemplateContent(config: KioskConfig, templateId: string): {
    content: {
        type: "text" | "image" | "video" | "template";
        status: "published" | "draft" | "archived";
        id: string;
        description: string;
        createdBy: string;
        createdAt: number;
        updatedAt: number;
        version: number;
        title: string;
        projectIds: string[];
        metadata: Record<string, any>;
        mediaUrl?: string | undefined;
        templateId?: string | undefined;
        templateValues?: {
            groups: Record<string, Record<string, any>>;
            ungrouped: Record<string, any>;
            _template?: {
                id: string;
                version: number;
            } | undefined;
        } | undefined;
        templateVersion?: number | undefined;
        data?: Record<string, any> | undefined;
    }[];
    template: {
        type: string;
        id: string;
        name: string;
        description: string;
        fields: {
            type: "number" | "boolean" | "text" | "select" | "rich-text" | "image" | "video" | "audio" | "date" | "multi-select" | "color";
            id: string;
            name: string;
            label: string;
            options?: string[] | undefined;
            validation?: {
                required: boolean;
                min?: number | undefined;
                max?: number | undefined;
                pattern?: string | undefined;
                customError?: string | undefined;
            } | undefined;
            description?: string | undefined;
            defaultValue?: any;
            step?: number | undefined;
            groupId?: string | undefined;
        }[];
        groups: Record<string, {
            id: string;
            name: string;
            order: number;
            fieldIds: string[];
            description?: string | undefined;
            normalizedName?: string | undefined;
        }>;
        ungroupedFieldIds: string[];
        groupOrder: string[];
        createdBy: string;
        createdAt: number;
        updatedAt: number;
        version: number;
        settings: {
            cacheStrategy: "memory" | "local" | "none";
            offlineSupport: boolean;
            syncInterval?: number | undefined;
        };
    } | null;
    loading: boolean;
    error: Error | null;
    isOnline: boolean;
};
export declare function useOfflineContent(config: KioskConfig): {
    content: {
        type: "text" | "image" | "video" | "template";
        status: "published" | "draft" | "archived";
        id: string;
        description: string;
        createdBy: string;
        createdAt: number;
        updatedAt: number;
        version: number;
        title: string;
        projectIds: string[];
        metadata: Record<string, any>;
        mediaUrl?: string | undefined;
        templateId?: string | undefined;
        templateValues?: {
            groups: Record<string, Record<string, any>>;
            ungrouped: Record<string, any>;
            _template?: {
                id: string;
                version: number;
            } | undefined;
        } | undefined;
        templateVersion?: number | undefined;
        data?: Record<string, any> | undefined;
    }[];
    syncStatus: "synced" | "pending" | "failed";
    lastSynced: number | null;
    error: Error | null;
    isOnline: boolean;
};
export declare function useContentSync(config: KioskConfig): {
    sync: (options?: SyncOptions) => Promise<void>;
    syncStatus: "error" | "idle" | "syncing" | "success";
    progress: number;
    error: Error | null;
    isOnline: boolean;
};
//# sourceMappingURL=hooks.d.ts.map