import { Severity, TargetValueEvent } from '../types';
import { DefineComponent } from 'vue';
import { HTMLAttributes } from 'svelte/elements';
export interface TextfieldProps {
    /** Type of the input, or 'textarea'  */
    type?: 'text' | 'textarea' | 'email' | 'number' | 'password' | 'search' | 'tel' | 'url';
    /** Value of the input */
    value: string;
    /** Caption below the textfield, for description or errors */
    caption?: string;
    /** State and color of the textfield */
    severity?: Severity;
    /** Placeholder */
    placeholder?: string;
    /** Required */
    required?: string;
    /** Disabled */
    disabled?: boolean;
    /** Clearable */
    clearable?: boolean;
    onInput?: (e: TargetValueEvent) => void;
    children?: any;
}
declare module 'vue' {
    interface GlobalComponents {
        'pyro-textfield': DefineComponent<TextfieldProps>;
    }
}
interface PyroTextfieldPreact extends Omit<JSX.HTMLAttributes, keyof TextfieldProps>, TextfieldProps {
}
declare module 'preact/jsx-runtime' {
    namespace JSX {
        interface IntrinsicElements {
            'pyro-textfield': PyroTextfieldPreact;
        }
    }
}
interface PyroTextfieldSvelte extends Omit<HTMLAttributes<any>, keyof TextfieldProps>, TextfieldProps {
}
declare module 'svelte/elements' {
    interface SvelteHTMLElements {
        'pyro-textfield': PyroTextfieldSvelte;
    }
}
declare module 'solid-js' {
    namespace JSX {
        interface IntrinsicElements {
            'pyro-textfield': PyroTextfieldPreact;
        }
    }
}
export {};
