import { channel } from '@synnaxlabs/client';
import { PropsWithChildren, ReactElement } from 'react';
import { z } from 'zod';
import { control } from './aether';
export interface ControllerProps extends Omit<z.input<typeof control.controllerStateZ>, "needsControlOf">, PropsWithChildren {
    onStatusChange?: (status: control.Status) => void;
    name: string;
}
export interface ContextValue {
    needsControlOf: channel.Keys;
    acquire: () => void;
    release: () => void;
}
declare const useContext: () => ContextValue;
export { useContext };
export declare const Controller: ({ children, onStatusChange, ...props }: ControllerProps) => ReactElement;
//# sourceMappingURL=Controller.d.ts.map