///
import { RequestHandler, Request, Response } from 'express';
import { EnvoyEntryEventRequest, EnvoyEventRequest, EnvoyInviteEventRequest, EnvoyLocationEventRequest, EnvoyMigrationRouteRequest, EnvoyNotificationEventRequest, EnvoyOptionsRouteRequest, EnvoyRemoteValueRouteRequest, EnvoySelectedValuesRouteRequest, EnvoyTakeoverEventRequest, EnvoyValidationRouteRequest } from './EnvoyRequest';
import EnvoyResponse, { EnvoyOptionsRouteResponse, EnvoyRemoteValueRouteResponse, EnvoySelectedValuesRouteResponse, EnvoyValidationRouteResponse } from './EnvoyResponse';
declare type SomeObject = Record;
declare type Result = Promise | void;
/**
* Handle an entry event, such as `entry_sign_in`.
* @category Handler
*/
export declare type EntryEventHandler = (req: EnvoyEntryEventRequest & Additions, res: EnvoyResponse) => Result;
/**
* Handle an invite event, such as `invite_created`.
* @category Handler
*/
export declare type InviteEventHandler = (req: EnvoyInviteEventRequest & Additions, res: EnvoyResponse) => Result;
/**
* Handle an location event, such as `location_capacity_updated`.
* @category Handler
*/
export declare type LocationEventHandler = (req: EnvoyLocationEventRequest & Additions, res: EnvoyResponse) => Result;
/**
* Handle an notification event.
* @category Handler
*/
export declare type NotificationEventHandler = (req: EnvoyNotificationEventRequest & Additions, res: EnvoyResponse) => Result;
/**
* Handle a takeover event.
* @category Handler
*/
export declare type TakeoverEventHandler = (req: EnvoyTakeoverEventRequest & Additions, res: EnvoyResponse) => Result;
/**
* Handle a `plugin_uninstalled` event for cleaning up.
* @category Handler
*/
export declare type PluginUninstalledEventHandler = (req: EnvoyEventRequest<'plugin_uninstalled', never, Config> & Additions, res: EnvoyResponse) => Result;
/**
* Handle a "migration" route.
* @category Handler
*/
export declare type MigrationRouteHandler = (req: EnvoyMigrationRouteRequest & Additions, res: EnvoyResponse) => Result;
/**
* Handle an "options" route.
* @category Handler
*/
export declare type OptionsRouteHandler = (req: EnvoyOptionsRouteRequest & Additions, res: EnvoyOptionsRouteResponse) => Result;
/**
* Handle a "remote value" route.
* @category Handler
*/
export declare type RemoteValueRouteHandler = (req: EnvoyRemoteValueRouteRequest & Additions, res: EnvoyRemoteValueRouteResponse) => Result;
/**
* Handle a "selected values" route.
* @category Handler
*/
export declare type SelectedValuesRouteHandler = (req: EnvoySelectedValuesRouteRequest & Additions, res: EnvoySelectedValuesRouteResponse) => Result;
/**
* Handle a "validation" route.
* @category Handler
*/
export declare type ValidationRouteHandler = (req: EnvoyValidationRouteRequest & Additions, res: EnvoyValidationRouteResponse) => Result;
/**
* Wraps any express.js-based handlers
* to catch Promise-based errors.
*
* @category Handler
*/
export declare function asyncHandler(handler: (req: Req, res: Res) => Result): RequestHandler;
/**
* Handler for entry events.
*
* @category Handler
*/
export declare function entryEventHandler(handler: EntryEventHandler): RequestHandler>;
/**
* Handler for invite events.
*
* @category Handler
*/
export declare function inviteEventHandler(handler: InviteEventHandler): RequestHandler>;
/**
* Handler for location events.
*
* @category Handler
*/
export declare function locationEventHandler(handler: LocationEventHandler): RequestHandler>;
/**
* Handler for a migration route.
*
* @category Handler
*/
export declare function migrationRouteHandler(handler: MigrationRouteHandler): RequestHandler>;
/**
* Handler for notification events.
*
* @category Handler
*/
export declare function notificationEventHandler(handler: NotificationEventHandler): RequestHandler>;
/**
* Handler for takeover events.
*
* @category Handler
*/
export declare function takeoverEventHandler(handler: TakeoverEventHandler): RequestHandler>;
/**
* Handler for options URL routes.
*
* @category Handler
*/
export declare function optionsRouteHandler(handler: OptionsRouteHandler): RequestHandler>;
/**
* Handler for `plugin_uninstalled` events.
*
* @category Handler
*/
export declare function pluginUninstalledEventHandler(handler: PluginUninstalledEventHandler): RequestHandler>;
/**
* Handler for remote value URL routes.
*
* @category Handler
*/
export declare function remoteValueRouteHandler(handler: RemoteValueRouteHandler): RequestHandler>;
/**
* Handler for selected values URL routes.
*
* @category Handler
*/
export declare function selectedValuesRouteHandler(handler: SelectedValuesRouteHandler): RequestHandler>;
/**
* Handler for validation URL routes.
*
* @category Handler
*/
export declare function validationRouteHandler(handler: ValidationRouteHandler): RequestHandler>;
export {};
//# sourceMappingURL=handlers.d.ts.map