import type { EventSpecMetadata } from "./eventSpec/AvoEventSpecFetchTypes";
export interface BaseBody {
    apiKey: string;
    appName: string;
    appVersion: string;
    libVersion: string;
    env: string;
    libPlatform: "react-native";
    messageId: string;
    trackingId: string;
    sessionId: string;
    anonymousId: string;
    createdAt: string;
    samplingRate: number;
    publicEncryptionKey?: string;
}
export interface EventSchemaBody extends BaseBody {
    type: "event";
    eventName: string;
    eventProperties: Array<{
        propertyName: string;
        propertyType: string;
        encryptedPropertyValue?: string;
        children?: any;
        failedEventIds?: string[];
        passedEventIds?: string[];
    }>;
    avoFunction: boolean;
    eventId: string | null;
    eventHash: string | null;
    streamId?: string;
    eventSpecMetadata?: {
        schemaId?: string;
        branchId?: string;
        latestActionId?: string;
        sourceId?: string;
    };
}
export declare class AvoNetworkCallsHandler {
    private apiKey;
    private envName;
    private appName;
    private appVersion;
    private libVersion;
    private publicEncryptionKey?;
    private samplingRate;
    private sending;
    private static trackingEndpoint;
    constructor(apiKey: string, envName: string, appName: string, appVersion: string, libVersion: string, publicEncryptionKey?: string);
    callInspectorWithBatchBody(inEvents: Array<EventSchemaBody>, onCompleted: (error: string | null) => any): void;
    bodyForEventSchemaCall(eventName: string, eventProperties: Array<{
        propertyName: string;
        propertyType: string;
        children?: any;
        failedEventIds?: string[];
        passedEventIds?: string[];
    }>, eventId: string | null, eventHash: string | null, eventProps?: Record<string, any>, metadata?: EventSpecMetadata | null): Promise<EventSchemaBody>;
    /**
     * Sends a validated event immediately, bypassing the batcher.
     * Matches Android SDK's reportValidatedEvent behavior.
     */
    reportValidatedEvent(eventBody: EventSchemaBody): void;
    private createBaseCallBody;
}
