import { Signal, Accessor } from 'solid-js';
import { MaybeAccessor } from '../utils/types.js';
import 'solid-js/types/reactive/signal';

interface UseToggleOptions<Truthy, Falsy> {
    truthyValue?: MaybeAccessor<Truthy>;
    falsyValue?: MaybeAccessor<Falsy>;
}
declare function useToggle<Truthy, Falsy, T = Truthy | Falsy>(initialValue: Signal<T>, options?: UseToggleOptions<Truthy, Falsy>): [Accessor<T>, (value?: T) => T];
declare function useToggle<Truthy = true, Falsy = false, T = Truthy | Falsy>(initialValue?: T, options?: UseToggleOptions<Truthy, Falsy>): [Accessor<T>, (value?: T) => T];

export { UseToggleOptions, useToggle };