import type { DirectorySyncEventType, Directory, User, Group, EventCallback, DirectorySyncEvent, IWebhookEventsLogger, IDirectoryConfig, IEventProcessor, JacksonOptionWithRequiredLogger } from '../typings';
export declare const eventLockTTL = 30;
export declare const webhookLogsTTL: number;
export declare const eventLockKey = "dsync-event-lock";
export declare const googleLockKey = "dsync-google-lock";
interface Payload {
    directory: Directory;
    group?: Group | null;
    user?: User | null;
}
interface EventCallbackParams {
    opts: JacksonOptionWithRequiredLogger;
    directories: IDirectoryConfig;
    eventProcessor: IEventProcessor;
    webhookLogs: IWebhookEventsLogger;
}
export declare const sendEvent: (event: DirectorySyncEventType, payload: Payload, callback?: EventCallback) => Promise<void>;
export declare const handleEventCallback: ({ opts, directories, eventProcessor, webhookLogs, }: EventCallbackParams) => Promise<(event: DirectorySyncEvent) => Promise<void>>;
export {};
