type PositiveVerb = keyof typeof toggleVerbs;
type NegativeVerb = typeof toggleVerbs[PositiveVerb];
type AllVerbKeys = PositiveVerb | NegativeVerb | 'toggle';
export declare const toggleVerbs: {
    readonly open: "close";
    readonly show: "hide";
    readonly turnOn: "turnOff";
    readonly check: "uncheck";
    readonly enable: "disable";
    readonly expand: "collapse";
    readonly activate: "deactivate";
    readonly start: "end";
    readonly connect: "disconnect";
    readonly focus: "blur";
    readonly mount: "unmount";
    readonly reveal: "conceal";
    readonly display: "dismiss";
    readonly lock: "unlock";
    readonly subscribe: "unsubscribe";
};
export declare const positiveVerbs: ("show" | "start" | "open" | "display" | "focus" | "connect" | "mount" | "turnOn" | "check" | "enable" | "expand" | "activate" | "reveal" | "lock" | "subscribe")[];
export declare const negativeVerbs: NegativeVerb[];
export declare const nounState: Record<string, boolean>;
export declare const NounSetter: unique symbol;
export type NounState = {
    [K in keyof typeof nounState]: boolean;
};
export type Noun = {
    name: string;
} & NounState;
export declare function createNounFromState(name: string, getActive: () => boolean, setActive: (active: boolean) => void): Noun;
export declare function useNoun(initial: boolean): Noun;
export type Verbs = {
    [K in AllVerbKeys]: (noun: Noun) => void;
};
export declare function useVerbs(): Verbs;
type Words = [
    nouns: Record<string, Noun>,
    verbs: Record<string, (noun: Noun) => void>
];
export declare function useWords(...initialValues: boolean[]): Words;
export default useWords;
