import { Context } from '../context';
import { Options, SegmentEvent } from '../events';
import { ID, User } from '../user';
export declare type Callback = (ctx: Context | undefined) => Promise<unknown> | unknown;
export declare function resolveArguments(eventName: string | SegmentEvent, properties?: object | Callback, options?: Options | Callback, callback?: Callback): [string, object, Options, Callback | undefined];
export declare function resolvePageArguments(category?: string | object, name?: string | object | Callback, properties?: object | Options | Callback | null, options?: Options | Callback, callback?: Callback): [string | null, string | null, object, Options, Callback | undefined];
export declare const resolveUserArguments: (user: User) => ResolveUser;
export declare function resolveAliasArguments(to: string, from?: string | Options, options?: Options | Callback, callback?: Callback): [string, string | null, Options, Callback | undefined];
declare type ResolveUser = (id?: ID | object, traits?: object | Callback | null, options?: Options | Callback, callback?: Callback) => [ID, object, Options, Callback | undefined];
export declare type UserParams = Parameters<ResolveUser>;
export declare type EventParams = Parameters<typeof resolveArguments>;
export declare type PageParams = Parameters<typeof resolvePageArguments>;
export declare type AliasParams = Parameters<typeof resolveAliasArguments>;
export declare type DispatchedEvent = Context;
export {};
