import type { BasicProviderProps, UploadImageFunction } from "./Providers.types"; import type { VariableValidationConfig } from "@/types/validation.types"; export declare const useTemplateStore: () => { store: { get: (atom: import("jotai").Atom) => Value; set: (atom: import("jotai").WritableAtom, ...args: Args) => Result; sub: (atom: import("jotai").Atom, listener: () => void) => () => void; } | ({ get: (atom: import("jotai").Atom) => Value; set: (atom: import("jotai").WritableAtom, ...args: Args) => Result; sub: (atom: import("jotai").Atom, listener: () => void) => () => void; } & import("jotai/vanilla/store").INTERNAL_DevStoreRev4); }; export declare const useUploadImage: () => UploadImageFunction | null; type TemplateProviderProps = BasicProviderProps & { templateId: string; uploadImage?: UploadImageFunction; variables?: Record; disableVariablesAutocomplete?: boolean; variableValidation?: VariableValidationConfig; sampleData?: Record; /** * Whether click-through (link) tracking is enabled for the workspace. * When false, the "Link tracking" toggle is disabled and forced off. * @default true */ linkTrackingEnabled?: boolean; /** * Whether the email formatting controls are offered: document-level body * padding and base font size / line spacing, the per-block font size and line * spacing fields, and the inline font-size button in the text menu. * * They author Elemental properties the renderer has to understand, so this is * opt-in: against a backend without that support the controls would write * values that are silently dropped on send. Turn it on once the renderer * handles them. * @default false */ emailFormattingEnabled?: boolean; /** * Whether the `PreviewPanel`'s "View Preview" / "Exit Preview" button is * offered. When false the button is dropped, and the panel renders nothing at * all unless a `previewMode` is already active (in which case it still shows * the desktop/mobile toggle — so a "Preview and test" screen keeps its * toggle). Turn it off when the host drives preview from its own chrome and * does not want the floating pill overlaying the editing canvas. * @default true */ previewPanelEnabled?: boolean; /** * Whether the designer should render its own Sonner ``. * Set to `false` when the host app already provides one to avoid duplicate toasts. * @default true */ renderToaster?: boolean; }; export declare const TemplateProvider: import("react").NamedExoticComponent; export {};