export interface UmamiRegisterConfig {
    websiteId: string;
    scriptSrc?: string;
    scriptAttributes?: Record<string, string | number | boolean | undefined | null>;
}
export type UmamiPayload<T = any> = Record<string, T>;
type SimplePayloadSignature = <T>(payload: UmamiPayload<T>) => void;
type TrackOnlySignature = <T>(eventName?: string, payload?: UmamiPayload<T>) => void;
export type ViewOnlySignature = <T>(payload?: UmamiPayload<T>) => void;
export type MapperSignature = <T>(mapper: (props: Record<string, any>) => UmamiPayload<T>) => void;
type IdentifyWithUniqueIdSignature = <T>(uniqueId: string | number, payload?: UmamiPayload<T>) => void;
export interface Umami {
    identify: SimplePayloadSignature & IdentifyWithUniqueIdSignature;
    track: SimplePayloadSignature & TrackOnlySignature & MapperSignature;
}
export interface UmamiExtended extends Umami {
    view: ViewOnlySignature & MapperSignature;
}
export interface EnhancedIdentifyPayload {
    timezone: string;
    timezoneOffset: number;
    ect: string;
    systemTheme: string;
    prefersReducedMotion: boolean;
    isTouchDevice: boolean;
    zoomLevel: number;
}
export {};
//# sourceMappingURL=types.d.ts.map