UNPKG

@bigdigital/kiosk-content-sdk

Version:

A Firebase-powered Content Management System SDK optimized for kiosks with offline support, template management, and real-time connection monitoring

343 lines 11.3 kB
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