import { xy } from '@synnaxlabs/x';
import { RefObject } from 'react';
import { MatchOptions, Stage, Trigger } from './triggers';
export interface UseEvent {
    target: HTMLElement;
    prevTriggers: Trigger[];
    triggers: Trigger[];
    stage: Stage;
    cursor: xy.XY;
}
export interface UseProps extends MatchOptions {
    triggers?: Trigger | Trigger[];
    region?: RefObject<HTMLElement | null>;
    callback?: (e: UseEvent) => void;
    regionMustBeElement?: boolean;
}
export declare const use: ({ triggers, callback: f, region, loose, double, regionMustBeElement, }: UseProps) => void;
export interface UseHeldReturn {
    triggers: Trigger[];
    held: boolean;
}
export interface UseHeldProps {
    triggers: Trigger[];
    loose?: boolean;
}
export declare const useHeldRef: ({ triggers, loose, }: UseHeldProps) => RefObject<UseHeldReturn>;
export declare const useHeld: ({ triggers, loose }: UseHeldProps) => UseHeldReturn;
//# sourceMappingURL=hooks.d.ts.map