import { type ThemeExportEnvelope } from '@/types/themeExport';
/**
 * Returns a string safe for use as a download filename across Windows/macOS/Linux.
 * Strips path-traversal characters, control bytes, and trailing dots; truncates to 80 chars.
 */
export declare function sanitizeFilename(input: string): string;
/**
 * Triggers a browser download for an in-memory blob using the standard
 * `URL.createObjectURL` + dynamic `<a download>` pattern. The download
 * filename is derived from the theme name and suffixed with the SmartStack
 * theme extension.
 */
export declare function triggerThemeDownload(blob: Blob, themeName: string): void;
/**
 * Reads the user-selected file, validates it is a SmartStack theme envelope,
 * and returns the parsed object. Throws an Error tagged with the i18n key the
 * caller should display when validation fails.
 */
export declare function parseThemeFile(file: File): Promise<ThemeExportEnvelope>;
export declare class ThemeImportError extends Error {
    readonly i18nKey: string;
    readonly context: Record<string, unknown> | undefined;
    constructor(i18nKey: string, context?: Record<string, unknown>);
}
//# sourceMappingURL=themeExport.d.ts.map