import { Renderable } from '@tempots/dom';
import { type Controller } from '../../form';
/**
 * File upload widget configuration
 */
export interface FileUploadConfig {
    /** Accepted file types (MIME types or extensions) */
    accept?: string[];
    /** Maximum file size in bytes */
    maxSize?: number;
    /** Allow multiple files */
    multiple?: boolean;
    /** Upload endpoint URL */
    uploadUrl?: string;
    /** Custom upload handler */
    onUpload?: (files: FileList) => Promise<string | string[]>;
    /** Preview mode for images */
    showPreview?: boolean;
}
/**
 * Rich text editor configuration
 */
export interface RichTextConfig {
    /** Toolbar options */
    toolbar?: ('bold' | 'italic' | 'underline' | 'link' | 'list' | 'heading')[];
    /** Maximum length */
    maxLength?: number;
    /** Placeholder text */
    placeholder?: string;
    /** Output format */
    format?: 'html' | 'markdown' | 'text';
}
/**
 * Code editor configuration
 */
export interface CodeEditorConfig {
    /** Programming language */
    language?: string;
    /** Theme */
    theme?: 'light' | 'dark' | 'auto';
    /** Show line numbers */
    lineNumbers?: boolean;
    /** Enable syntax highlighting */
    syntaxHighlighting?: boolean;
    /** Tab size */
    tabSize?: number;
    /** Enable code folding */
    codeFolding?: boolean;
}
/**
 * File upload widget
 */
export declare function FileUploadWidget({ controller, config, }: {
    controller: Controller<string | string[] | null>;
    config?: FileUploadConfig;
}): Renderable;
/**
 * Rich text editor widget (simplified implementation)
 */
export declare function RichTextWidget({ controller, config, }: {
    controller: Controller<string | null>;
    config?: RichTextConfig;
}): Renderable;
/**
 * Code editor widget (simplified implementation)
 */
export declare function CodeEditorWidget({ controller, config, }: {
    controller: Controller<string | null>;
    config?: CodeEditorConfig;
}): Renderable;
