@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
TypeScript
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