import { EventEmitter } from "../../stencil-public-runtime";
import type { InputState, InputType } from "./types";
import type { Theme } from '../../utils/styles';
/**
* @component diwa-input
*
* A fully encapsulated, accessible text input primitive.
* Supports all common text-based HTML input types and validation states.
*
* Design token override API (set on :root or any ancestor):
* --diwa-input-height Height of the input
* --diwa-input-padding-x Horizontal padding
* --diwa-input-radius Border radius
* --diwa-input-border Default border colour
* --diwa-input-bg Background colour
* --diwa-input-color Text colour
* --diwa-input-placeholder-color Placeholder text colour
* --diwa-input-font-size Font size
* --diwa-input-border-focus Border colour when focused
* --diwa-input-border-error Border colour in error state
* --diwa-input-border-success Border colour in success state
*
* Usage:
*
*
*
*
* @slot prefix — Icon or content placed before the input (e.g., a search icon)
* @slot suffix — Icon or content placed after the input (e.g., a clear button)
*/
export declare class DiwaInput {
/** Native input type. Controls keyboard, validation, and autocomplete behaviour. */
type: InputType;
/** Visible label text. Linked to the inner via htmlFor/id. */
label?: string;
/** Placeholder text shown when the field is empty. */
placeholder?: string;
/** Controlled value. Update in response to the `change` event for controlled patterns. */
value: string;
/** Marks the field as required. Sets aria-required on the inner input. */
required: boolean;
/** Disables the input. Blocks pointer and keyboard interaction. */
disabled: boolean;
/** Makes the input read-only. Content is selectable but not editable. */
readonly: boolean;
/**
* Validation state. Controls border colour and the hint text colour.
* Pair with the `hint` prop to surface error or success messages.
*/
state: InputState;
/**
* Helper / hint text rendered below the input.
* In the error state this text should describe the validation failure.
* Associated via aria-describedby for screen reader announcement.
*/
hint?: string;
/**
* HTML autocomplete attribute passthrough.
* Allows browsers to offer autocomplete suggestions.
*/
autocomplete?: string;
/**
* HTML name attribute — used to identify the field in form data.
*/
name?: string;
/**
* HTML id forwarded to the inner input.
* When omitted the component generates a unique id for label association.
*/
inputId?: string;
/** Per-component theme override. */
theme: Theme;
/**
* Emitted on every keystroke.
* Payload is the current string value.
*/
input: EventEmitter;
/**
* Emitted when the input loses focus after value changes.
* Payload is the committed string value.
*/
change: EventEmitter;
/**
* Emitted when the input receives focus.
*/
focus: EventEmitter;
/**
* Emitted when the input loses focus.
*/
blur: EventEmitter;
private internalId;
private get resolvedId();
private get hintId();
private handleInput;
private handleChange;
private handleFocus;
private handleBlur;
render(): any;
}
//# sourceMappingURL=diwa-input.d.ts.map