import { OnChanges, OnInit, SimpleChanges } from '@angular/core';
import { InputMetadata } from '../../types';
import * as i0 from "@angular/core";
export declare class TextInputComponent implements OnInit, OnChanges {
    private presets;
    /**
     * Preset name to apply. Presets define reusable input configurations
     * (size, fill, labelPosition, etc.) that can be registered at app level.
     *
     * @example
     * <val-text-input preset="form-field" [props]="{ control: ctrl }"></val-text-input>
     */
    preset?: string;
    /**
     * Input configuration object. Values here override preset values.
     * @type {InputMetadata}
     * @property control - The Angular FormControl for the input.
     * @property placeholder - The placeholder text.
     * @property label, name, hint, type, validators, etc. - See InputMetadata for all options.
     */
    props: Partial<InputMetadata>;
    /**
     * Resolved props after merging preset + explicit props.
     * Preset values are overridden by explicit props.
     */
    resolvedProps: InputMetadata;
    states: {
        ENABLED: "ENABLED";
        DISABLED: "DISABLED";
        WORKING: "WORKING";
        ERROR: "ERROR";
    };
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    /**
     * Merge preset configuration with explicit props.
     * Explicit props take precedence over preset values.
     */
    private resolveProps;
    static ɵfac: i0.ɵɵFactoryDeclaration<TextInputComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TextInputComponent, "val-text-input", never, { "preset": { "alias": "preset"; "required": false; }; "props": { "alias": "props"; "required": false; }; }, {}, never, never, true, never>;
}
