import { type IFlagshipConfig } from '../config/IFlagshipConfig';
import { InternalHitType } from '../types';
export interface IHitAbstract {
    visitorId: string;
    anonymousId?: string | null;
    ds?: string;
    type: InternalHitType;
    userIp?: string;
    screenResolution?: string;
    locale?: string;
    sessionNumber?: string;
    createdAt: number;
    qaMode?: boolean;
    isActionTrackingHit?: boolean;
}
export declare abstract class HitAbstract implements IHitAbstract {
    private _visitorId;
    private _config;
    protected _type: InternalHitType;
    private _ds;
    private _anonymousId?;
    private _userIp;
    private _screenResolution;
    private _locale;
    private _sessionNumber;
    private _key;
    private _createdAt;
    private _qaMode?;
    private _isActionTrackingHit;
    get isActionTrackingHit(): boolean | undefined;
    set isActionTrackingHit(v: boolean | undefined);
    get key(): string;
    set key(v: string);
    get sessionNumber(): string;
    set sessionNumber(v: string);
    get locale(): string;
    set locale(v: string);
    get screenResolution(): string;
    set screenResolution(v: string);
    get userIp(): string;
    set userIp(v: string);
    get anonymousId(): string | undefined | null;
    set anonymousId(v: string | undefined | null);
    get visitorId(): string;
    set visitorId(v: string);
    get ds(): string;
    set ds(v: string);
    get type(): InternalHitType;
    get config(): IFlagshipConfig;
    set config(v: IFlagshipConfig);
    get createdAt(): number;
    set createdAt(v: number);
    get qaMode(): boolean | undefined;
    set qaMode(v: boolean | undefined);
    protected constructor(hit: Omit<IHitAbstract, 'createdAt' | 'traffic'>);
    /**
     * Return true if value is a string and not empty, otherwise return false
     * @param value
     * @param itemName
     * @returns
     */
    protected isNotEmptyString(value: unknown, itemName: string): boolean;
    protected isNumeric(value: unknown, itemName: string): boolean;
    protected isInteger(value: unknown, itemName: string): boolean;
    /**
     * Return an object with Api parameters as keys
     */
    toApiKeys(): Record<string, unknown>;
    toObject(): Record<string, unknown>;
    /**
     * Return true if all required attributes are given, otherwise return false
     */
    isReady(_checkParent?: boolean): boolean;
    /**
     * This function return the error message according to required attributes of class
     *
     */
    abstract getErrorMessage(): string;
}
