import type { Directory, User, IUsers, IRequestHandler, DirectorySyncRequest, EventCallback, IDirectoryProvider } from '../../typings';
interface SyncUserParams {
    directory: Directory;
    userController: IUsers;
    callback: EventCallback;
    provider: IDirectoryProvider;
    requestHandler: IRequestHandler;
}
type HandleRequestParams = Pick<DirectorySyncRequest, 'method' | 'body' | 'resourceId'>;
export declare class SyncUsers {
    private directory;
    private userController;
    private callback;
    private provider;
    private requestHandler;
    constructor({ directory, userController, callback, provider, requestHandler }: SyncUserParams);
    sync(): Promise<void>;
    getAllExistingUsers(): Promise<User[]>;
    createUser(user: User): Promise<void>;
    updateUser(user: User): Promise<void>;
    deleteUsers(users: User[]): Promise<void>;
    handleRequest(payload: HandleRequestParams): Promise<void>;
}
export {};
