/**
 * Client SDK for Tianji Application API
 */
import { IdentifyPayload } from './types';
/**
 * Application event payload interface
 */
export interface ApplicationEventPayload {
    /**
     * Language information (max 35 chars)
     */
    language?: string;
    /**
     * Operating system information (max 20 chars)
     */
    os?: string;
    /**
     * URL information (max 500 chars)
     */
    url?: string;
    /**
     * Application identifier (required)
     */
    application: string;
    /**
     * Event name (max 50 chars)
     */
    name?: string;
    /**
     * Application data object
     */
    data?: Record<string, any>;
    /**
     * Screen Name
     */
    screen?: string;
    /**
     * Screen Params
     */
    params?: Record<string, any>;
}
/**
 * Application identify payload interface
 */
export interface ApplicationIdentifyPayload extends ApplicationEventPayload {
    /**
     * User identification data (required for identify)
     */
    data: Record<string, any>;
}
/**
 * Options for application tracking
 */
export interface ApplicationTrackingOptions {
    /**
     * Your Tianji server URL
     * @example https://tianji.example.com
     */
    serverUrl: string;
    /**
     * Application identifier
     */
    applicationId: string;
}
export declare function initApplication(_options: ApplicationTrackingOptions): void;
/**
 * Update current application screen
 */
export declare function updateCurrentApplicationScreen(name: string, params: Record<string, any>): void;
/**
 * Send application screen view event to Tianji server
 */
export declare function reportApplicationScreenView(screenName?: string, screenParams?: Record<string, any>): Promise<void>;
/**
 * Send application event to Tianji server
 *
 * @param options - Application tracking options
 * @param eventName - Name of the event
 * @param eventData - Event data
 */
export declare function reportApplicationEvent(eventName: string, eventData?: Record<string, any>, screenName?: string, screenParams?: Record<string, any>): Promise<void>;
export interface VersionPayload {
    version?: string;
    sdkVersion?: string;
}
/**
 * Identify user in application
 *
 * @param options - Application tracking options
 * @param userData - User identification data
 */
export declare function identifyApplicationUser(userInfo: IdentifyPayload | VersionPayload): Promise<void>;
//# sourceMappingURL=application.d.ts.map