import type { Snippet } from 'svelte';
import type { NeoButtonGroupProps } from '../buttons/neo-button-group.model.js';
import type { NeoRememberSelectorProps } from './neo-remember-selector.model.js';
import type { NeoResetSelectorProps } from './neo-reset-selector.model.js';
import type { NeoSourceSelectorProps } from './neo-source-selector.model.js';
import type { INeoThemeProviderContext } from './neo-theme-provider.model.js';
import type { NeoThemeSelectorProps } from './neo-theme-selector.model.js';
import type { NeoTransitionSelectorProps } from './neo-transition-selector.model.js';
export type NeoThemeSelectorsProps = {
    /**
     * Any children to display in the theme selector.
     */
    children?: Snippet<[INeoThemeProviderContext]>;
    /**
     * Whether to show the dark/light theme button or not.
     */
    theme?: boolean;
    /**
     * The label to show in the theme selector.
     *
     * @default Theme
     */
    themeLabel?: NeoThemeSelectorProps['label'];
    /**
     * Whether to show the light source button or not.
     */
    source?: boolean;
    /**
     * The label to show in the source selector.
     *
     * @default Source
     */
    sourceLabel?: NeoSourceSelectorProps['label'];
    /**
     * Whether to show the reset style button or not.
     */
    reset?: boolean;
    /**
     * The label to show in the reset selector.
     *
     * @default Reset
     */
    resetLabel?: NeoResetSelectorProps['label'];
    /**
     * Whether to show the remember button or not.
     */
    remember?: boolean;
    /**
     * The label to show in the remember selector.
     *
     * @default Remember
     */
    rememberLabel?: NeoRememberSelectorProps['label'];
    /**
     * Which transition to use when changing the theme.
     */
    themeTransition?: boolean;
    /**
     * The label to show in the transition selector.
     *
     * @default Transition: <transition>
     */
    themeTransitionLabel?: NeoTransitionSelectorProps['label'];
    /**
     * The props to pass to the reset button.
     */
    resetProps?: NeoResetSelectorProps;
    /**
     * The props to pass to the theme button.
     */
    themeProps?: NeoThemeSelectorProps;
    /**
     * The props to pass to the source button.
     */
    sourceProps?: NeoSourceSelectorProps;
    /**
     * The props to pass to the remember button.
     */
    rememberProps?: NeoRememberSelectorProps;
    /**
     * The props to pass to the transition button.
     */
    themeTransitionProps?: NeoTransitionSelectorProps;
} & Omit<NeoButtonGroupProps, 'children'>;
