import { type TTextInputComponent } from "@namiml/sdk-core";
import { NamiElement } from "../NamiElement";
import { type CSSResult } from "lit";
export declare class NamiTextInput extends NamiElement<TTextInputComponent> {
    component: TTextInputComponent;
    inFocusedState: boolean;
    scaleFactor: number;
    /** Live (non-reactive) buffer of the input value; mirrors PaywallState. */
    private _value;
    /** Whether the input currently holds DOM focus. */
    private _focused;
    constructor();
    connectedCallback(): void;
    private get isTelevision();
    /** Map the wire `type` to the validator's `TTextInputType`. */
    private validatorType;
    private validator;
    private get currentError();
    private _handleInput;
    private _handleFocus;
    private _handleBlur;
    protected styles(): CSSResult;
    private resolvedSpacing;
    private resolvedBorderWidth;
    private applyLabelStyles;
    /**
     * 4-state styling: error > focused > filled > empty. Errors and focus override
     * the resting border/fill/radius. Filled vs empty share the resting style; the
     * distinction exists for parity with the native ports and future theming.
     */
    private applyInputStyles;
    private applyErrorStyles;
    render(): import("lit-html").TemplateResult<1>;
}
