import type { Locale } from '@urbicon-ui/i18n';
import type { SelectSingleProps } from '../../index.js';
/**
* Props interface for LocaleSwitcher component
*
* @summary Lets the user pick the interface language.
* @description Convenience wrapper around Select to switch UI locales.
* Single-select only — locale is always exactly one value. Options, value,
* form integration, multi-select, and null-option are all owned internally
* and intentionally not forwarded to the underlying Select.
*
* @tag form
* @related Select
*
* @example
* ```svelte
*
* ```
*
* @example
* ```svelte
*
* ```
*/
export interface LocaleSwitcherProps extends Omit, 'options' | 'groups' | 'value' | 'onValueChange' | 'multiple' | 'multiPlaceholder' | 'nullOption' | 'closeOnSelect' | 'name' | 'label' | 'helper' | 'error'> {
/** Show flag emoji alongside locale name. @default false */
showFlag?: boolean;
/**
* Micro-interaction preset forwarded to the inner Select trigger.
* Redeclared from SelectSingleProps so the inheritance is a documented
* contract rather than an accident of the Omit list.
* @default 'none'
*/
mint?: SelectSingleProps['mint'];
/**
* Apply a named preset registered via ``.
* Resolved against the **`LocaleSwitcher`** key, not `Select`: a preset written
* for the locale picker would otherwise style every select under the provider.
* `defaults.Select` still applies — the resolved preset reaches Select as
* instance `slotClasses`, so it wins over the provider's select-wide defaults
* and loses to `slotClasses` / `class` written on this component.
* A preset's `overrides` rules are matched against what you wrote here plus
* Select's own variant defaults; an axis Select derives for itself (`tier`,
* `messageType`, `error`, `open`) can match the wrong state — #360.
*/
preset?: string;
/** Restrict the displayed locales. Defaults to all locales registered in i18n. */
locales?: Locale[];
/** Called after the locale has been changed successfully. */
onLocaleChange?: (locale: Locale) => void;
}
export { default as LocaleSwitcher } from './LocaleSwitcher.svelte';