import { Block, BlockConfig } from '../types/block';
import { AnyObject, OptionalKeys } from '../types';
import { ClassValue } from 'clsx';

export declare const createId: () => string;
export declare const createRootBlock: () => {
    id: string;
    type: string;
    parentId: string;
    children: never[];
    settings: {};
};
export declare const createContent: (blocks: Block[]) => Record<string, Block>;
export declare const isEmptyContent: (content: Record<string, Block>) => boolean;
export declare const createBlock: <T extends object = AnyObject>(config: OptionalKeys<Block<T>, "id" | "children">) => {
    settings: T;
    type: string;
    advancedSettings?: import('../types').BlockAdvancedSettings | undefined;
    parentId: string;
    id: string;
    children: (string | Block)[];
};
export declare const createBlockConfig: <T extends object>(config: OptionalKeys<BlockConfig<T>, "label" | "settings" | "controls">) => {
    icon?: import('react').ComponentType | undefined;
    type: string;
    advancedSettings?: import('../types').BlockAdvancedSettings | undefined;
    previewImage?: string | undefined;
    component: import('react').ComponentType<import('../types').BlockProps<T>>;
    previewComponent?: import('react').ComponentType<import('../types').BlockProps<T>> | undefined;
    style?: ((params: {
        blockId: string;
        settings: T;
        themeSettings: import('../types').Theme["settings"];
        breakpoints: import('../types').BreakpointConfig[];
    }) => import('free-style').Styles) | undefined;
    group?: import('../types').BlockGroup | undefined;
    disableAdvancedSettings?: boolean | undefined;
    isVisible?: ((params?: AnyObject) => boolean) | undefined;
    toolbar?: import('react').ComponentType<import('../types').BlockToolbarProps> | undefined;
    settings: {};
    label: string;
    controls: import('../types').BlockControl[];
};
export declare const createStyle: () => {
    register: (styles: import('free-style').Styles) => string;
    get: () => string;
};
export declare function classNames(...inputs: ClassValue[]): string;
export declare function getIcons(iconSet: string): Promise<void>;
export declare function sortRepeatableItems(ids: string[], data: any[]): any[];
export declare function objectKeys<T extends object>(obj: T): Array<keyof T>;
export declare const pluralize: <T extends string>(word: T) => string;
export declare const singularize: <T extends string>(word: T) => string;
export declare function bytesToSize(bytes: number): string;
export declare const generateImageUrl: (path: string) => string;
/**
 * Converts a file to a base64 string
 * @param file The file to convert
 * @returns A promise that resolves to the base64 string
 */
export declare const fileToBase64: (file: File) => Promise<string>;
/**
 * Converts an image URL to a base64 string
 * @param url The URL of the image
 * @returns A promise that resolves to the base64 string
 */
export declare const urlToBase64: (url: string) => Promise<string>;
/**
 * Generates a unique ID for media items
 * @returns A unique ID string
 */
export declare const generateUniqueId: () => string;
//# sourceMappingURL=index.d.ts.map