import { LitElement } from 'lit';
export interface SelectOption {
value: string;
text: string;
disabled?: boolean;
}
/**
* USA Select Web Component
*
* A simple, accessible USWDS select implementation as a custom element.
* Uses official USWDS classes and styling with minimal custom code.
*
* @element usa-select
*
* @attr {string} name - Select name for form submission.
* @attr {string} value - Currently selected value.
* @attr {string} label - Label text displayed above the select.
* @attr {string} hint - Helper text displayed below the label.
* @attr {string} error - Error message displayed in red below the select.
* @attr {string} success - Success message displayed in green below the select.
* @attr {boolean} disabled - Whether the select is disabled.
* @attr {boolean} required - Whether the select is required.
* @attr {string} defaultOption - Placeholder text for default empty option.
* @attr {boolean} compact - Render without form-group wrapper for use in patterns.
*
* @prop {Array<{value: string, text: string, disabled?: boolean}>} options - Array of select options.
*
* @fires change - Dispatched when the select value changes
* @fires input - Dispatched when the select value changes (for consistency)
*
* @example
* ```html
*
*
*
*
*
*
*
*
*
*
*
* ```
*
* @see README.mdx - Complete API documentation, usage examples, and implementation notes
* @see CHANGELOG.mdx - Component version history and breaking changes
* @see TESTING.mdx - Testing documentation and coverage reports
*
* @uswds-css-reference https://github.com/uswds/uswds/tree/develop/packages/usa-select/src/styles/_usa-select.scss
* @uswds-docs https://designsystem.digital.gov/components/select/
* @uswds-guidance https://designsystem.digital.gov/components/select/#guidance
* @uswds-accessibility https://designsystem.digital.gov/components/select/#accessibility
*/
export declare class USASelect extends LitElement {
private _selectId;
static styles: import('lit').CSSResult;
name: string;
value: string;
label: string;
hint: string;
error: string;
success: string;
disabled: boolean;
required: boolean;
options: Array<{
value: string;
text: string;
disabled?: boolean;
}>;
defaultOption: string;
/**
* Whether to render in compact mode (no form-group wrapper)
* Use this when the select is inside a fieldset or pattern where
* the parent handles spacing and grouping
*/
compact: boolean;
private selectElement?;
protected createRenderRoot(): HTMLElement;
connectedCallback(): void;
firstUpdated(): void;
updated(_changedProperties: Map): void;
private updateSelectElement;
private handleChange;
/**
* Public API: Reset select to empty value
* Allows patterns to clear the select without DOM manipulation
*/
reset(): void;
private get selectId();
private renderLabel;
private renderRequiredIndicator;
private renderHint;
private renderError;
private renderSuccess;
private renderDefaultOption;
private renderOption;
render(): import('lit-html').TemplateResult<1>;
}
//# sourceMappingURL=usa-select.d.ts.map