import type { JSX } from 'solid-js'; export interface ToggleStateControlledOptions { pressed: boolean; disabled?: boolean; onChange?: (state: boolean) => void; } export interface ToggleStateUncontrolledOptions { defaultPressed: boolean; disabled?: boolean; onChange?: (state: boolean) => void; } export type ToggleStateOptions = ToggleStateControlledOptions | ToggleStateUncontrolledOptions; export interface ToggleStateProperties { pressed: () => boolean; setState: (newState: boolean) => void; disabled: () => boolean; check: () => void; uncheck: () => void; toggle: () => void; } /** * Creates a pressed/unpressed state. Backs `Toggle`. * * Pass `defaultPressed` for uncontrolled state or `pressed` for controlled. * * @see {@link https://github.com/lxsmnsyc/terracotta/blob/main/docs/states.md#toggle-state} */ export declare function createToggleState(options: ToggleStateOptions): ToggleStateProperties; export interface ToggleStateRenderProps { children?: JSX.Element | ((state: ToggleStateProperties) => JSX.Element); } export interface ToggleStateProviderProps extends ToggleStateRenderProps { state: ToggleStateProperties; } export declare function ToggleStateProvider(props: ToggleStateProviderProps): JSX.Element; /** * Reads the nearest toggle state from context. Throws when there is none. * * @see {@link https://github.com/lxsmnsyc/terracotta/blob/main/docs/states.md#toggle-state} */ export declare function useToggleState(): ToggleStateProperties; /** * Passes the nearest toggle state to a render prop. A function child is * treated as a render prop only when it declares exactly one parameter. * * @see {@link https://github.com/lxsmnsyc/terracotta/blob/main/docs/states.md#toggle-state} */ export declare function ToggleStateChild(props: ToggleStateRenderProps): JSX.Element; //# sourceMappingURL=create-toggle-state.d.ts.map