import { RequestTracingConfig } from '../../HttpClient';
import { JanusClient } from './JanusClient';
export interface SegmentData {
    campaigns?: any;
    channel: number;
    channelPrivacy?: 'public' | 'private';
    priceTables?: any;
    utm_campaign: string;
    regionId?: string;
    utm_source: string;
    utmi_campaign: string;
    currencyCode: string;
    currencySymbol: string;
    countryCode: string;
    cultureInfo: string;
    [key: string]: any;
}
export declare class Segment extends JanusClient {
    /**
     * Get the segment data using the current `ctx.vtex.segmentToken`
     *
     * @memberof Segment
     */
    getSegment: (tracingConfig?: RequestTracingConfig) => Promise<SegmentData>;
    /**
     * Get the segment data from this specific segment token
     *
     * @memberof Segment
     */
    getSegmentByToken: (token: string | null, tracingConfig?: RequestTracingConfig) => Promise<SegmentData>;
    getOrCreateSegment: (query?: Record<string, string>, token?: string, tracingConfig?: RequestTracingConfig) => Promise<{
        segmentData: SegmentData;
        segmentToken: string | null;
    }>;
    private rawSegment;
}
