/**
 * Assembles parameters for different session event types
 */
export default class ParamsAssembler {
    private registeredPropertiesGetter;
    constructor(registeredPropertiesGetter: () => {
        dimensions: object;
        values: object;
    } | null);
    /**
     * Assemble parameters for session start
     * @param dimensions - Event dimensions
     * @param options - Additional options (hasEndDatetime, etc.)
     */
    assembleForStart(dimensions?: object, options?: {
        hasEndDatetime?: boolean;
    }): any;
    /**
     * Assemble parameters for session stop
     * @param params - Stop parameters
     */
    assembleForStop(params?: any): any;
    /**
     * Assemble parameters for event
     * @param eventName - Event name
     * @param dimensions - Event dimensions
     * @param values - Event values
     * @param topLevelDimensions - Top-level dimensions to merge
     * @param options - Additional options (hasEndDatetime, etc.)
     */
    assembleForEvent(eventName?: string, dimensions?: object, values?: object, topLevelDimensions?: object, options?: {
        hasEndDatetime?: boolean;
    }): any;
    /**
     * Assemble parameters for event end
     * @param eventName - Event name
     * @param topLevelDimensions - Top-level dimensions to merge
     */
    assembleForEventEnd(eventName?: string, topLevelDimensions?: object): any;
    /**
     * Assemble parameters for navigation
     * @param dimensions - Navigation dimensions (should include page/route)
     * @param isStart - Whether this is a start navigation
     */
    assembleForNav(dimensions?: object, isStart?: boolean): any;
    /**
     * Add error fields to base parameters
     * @param baseParams - Base parameters object
     * @param errorFields - Error fields (code, msg, type, metadata, duration)
     */
    assembleForError(baseParams: any, errorFields: {
        code: String;
        msg: String;
        errorType?: String;
        metadata?: String;
        duration?: Number;
    }): any;
    /**
     * Build base params structure with registered properties merge
     */
    private buildBaseParams;
    /**
     * Parse internal params object (unwrap params.params)
     */
    private parseInternalParams;
}
