import { EventCategory } from './EventCategory';
import { HitAbstract, IHitAbstract } from './HitAbstract';
export declare const ERROR_MESSAGE = "event category and event action are required";
export declare const CATEGORY_ERROR = "The category value must be either EventCategory::ACTION_TRACKING or EventCategory::ACTION_TRACKING";
export declare const VALUE_FIELD_ERROR = "value must be an integer and be >= 0";
export interface IEvent extends IHitAbstract {
    category: EventCategory;
    action: string;
    label?: string;
    value?: number;
}
export declare class Event extends HitAbstract implements IEvent {
    private _category;
    private _action;
    private _label;
    private _value;
    get category(): EventCategory;
    /**
     * Specify Action Tracking or User Engagement.
     */
    set category(v: EventCategory);
    get action(): string;
    /**
     * Specify Event name that will also serve as the KPI
     * that you will have inside your reporting
     */
    set action(v: string);
    get label(): string;
    /**
     * Specify additional description of event.
     */
    set label(v: string);
    get value(): number;
    /**
     * Specify the monetary value associated with an event
     * (e.g. you earn 10 to 100 euros depending on the quality of lead generated).
     *
     * <br/> NOTE: this value must be non-negative.
     */
    set value(v: number);
    constructor(param: Omit<IEvent, 'type' | 'createdAt' | 'visitorInstanceId' | 'traffic'>);
    toApiKeys(): any;
    toObject(): Record<string, unknown>;
    isReady(checkParent?: boolean): boolean;
    getErrorMessage(): string;
}
