import { Stage, Trigger } from './triggers';
import { xy } from '@synnaxlabs/x';
import { MutableRefObject, RefObject } from 'react';

export interface UseEvent {
    target: HTMLElement;
    triggers: Trigger[];
    stage: Stage;
    cursor: xy.XY;
}
export interface UseProps {
    triggers: Trigger[];
    callback?: (e: UseEvent) => void;
    region?: RefObject<HTMLElement>;
    loose?: boolean;
}
export declare const use: ({ triggers, callback: f, region, loose }: UseProps) => void;
export interface UseHeldReturn {
    triggers: Trigger[];
    held: boolean;
}
export interface UseHeldProps {
    triggers: Trigger[];
    loose?: boolean;
}
export declare const useHeldRef: ({ triggers, loose, }: UseHeldProps) => MutableRefObject<UseHeldReturn>;
export declare const useHeld: ({ triggers, loose }: UseHeldProps) => UseHeldReturn;
//# sourceMappingURL=hooks.d.ts.map