import { CSSResultGroup, LitElement, PropertyValues, TemplateResult } from "lit";
import "element-internals-polyfill";
export declare type TextareaSize = "small" | "medium" | "large";
declare const BlTextarea_base: import("@open-wc/form-control").Constructor<import("@open-wc/form-control").FormControlInterface> & typeof LitElement;
/**
 * @tag bl-textarea
 * @summary Baklava Textarea component
 */
export default class BlTextarea extends BlTextarea_base {
    static get styles(): CSSResultGroup;
    static shadowRootOptions: {
        delegatesFocus: boolean;
        mode: ShadowRootMode;
        slotAssignment?: SlotAssignmentMode | undefined;
        customElements?: CustomElementRegistry | undefined;
    };
    static formControlValidators: ({
        key: keyof ValidityState;
        isValid(instance: HTMLElement & {
            validationTarget: HTMLInputElement;
        }): boolean;
    } | {
        isValid(instance: HTMLElement & {
            validationTarget: HTMLTextAreaElement; /**
             * @tag bl-textarea
             * @summary Baklava Textarea component
             */
        }): boolean;
        attribute?: string | string[] | undefined;
        key?: keyof ValidityState | undefined;
        message: string | import("@open-wc/form-control").validationMessageCallback;
    })[];
    validationTarget: HTMLTextAreaElement;
    /**
     * Name of textarea
     */
    name: string;
    /**
     * Makes textarea a mandatory field
     */
    required: boolean;
    /**
     * Disables the textarea
     */
    disabled: boolean;
    /**
     * Sets expandity
     */
    expand: boolean;
    /**
     * Sets max row when expand is true
     */
    maxRows?: number;
    /**
     * Sets textarea size.
     */
    size?: TextareaSize;
    /**
     * Sets label of the textarea
     */
    label?: string;
    /**
     * Makes label as fixed positioned
     */
    labelFixed: boolean;
    /**
     * Sets placeholder of the textarea
     */
    placeholder?: string;
    /**
     * Enables showing character counter.
     */
    characterCounter: boolean;
    /**
     * Adds help text
     */
    helpText?: string;
    /**
     * Set custom error message
     */
    customInvalidText?: string;
    /**
     * Sets minimum length of the textarea
     */
    minlength?: number;
    /**
     * Sets max length of textarea
     */
    maxlength?: number;
    /**
     * Sets initial value of the textarea
     */
    value: string;
    /**
     * Sets textarea visible row count.
     */
    rows?: number;
    /**
     * Sets the input mode of the field for asking browser to show the desired keyboard.
     */
    inputmode: "none" | "text" | "decimal" | "numeric" | "tel" | "search" | "email" | "url";
    /**
     * Sets input to get keyboard focus automatically
     */
    autofocus: boolean;
    /**
     * Hints browser to autocomplete this field.
     */
    autocomplete: string;
    /**
     * Enables/disables spellcheck feature inside the textarea
     */
    spellchecker: "true" | "false";
    private onInput;
    private onChange;
    private onInvalid;
    private customScrollHeight;
    private inputId;
    connectedCallback(): void;
    private onError;
    private inputHandler;
    private changeHandler;
    firstUpdated(): void;
    protected updated(changedProperties: PropertyValues): Promise<void>;
    reportValidity(): boolean;
    valueChangedCallback(value: string): void;
    validityCallback(): string | void;
    private autoResize;
    private dirty;
    render(): TemplateResult;
}
declare global {
    interface HTMLElementTagNameMap {
        "bl-textarea": BlTextarea;
    }
}
export {};
//# sourceMappingURL=bl-textarea.d.ts.map