import { AuthObject, AudienceSegmentBody, AudienceSegmentData } from './types';
/**
 * CriteoAudience SDK for managing audience segments in Criteo
 * @class
 */
export default class CriteoAudience {
    private authObject;
    private httpClient;
    /**
     * Creates an instance of CriteoAudience
     * @param {AuthObject} authObject - Authentication object containing access token and refresh function
     * @throws {Error} If authObject is invalid or missing required properties
     */
    constructor(authObject: AuthObject);
    /**
     * Validates the authentication object
     * @param {AuthObject} authObject - Authentication object to validate
     * @throws {Error} If authObject is invalid or missing required properties
     * @private
     */
    private static validateAuthObject;
    /**
     * Refreshes the access token using the provided refresh function
     * @throws {Error} If token refresh fails
     * @private
     */
    private refreshToken;
    /**
     * Gets the request headers with authentication
     * @returns {RequestConfig} Request configuration with headers
     * @private
     */
    private getHeader;
    /**
     * Executes a POST request with token refresh handling
     * @template T - Response type
     * @param {string} url - API endpoint URL
     * @param {object} data - Request payload
     * @returns {Promise<ApiResponse<T>>} API response
     * @private
     */
    private executePostRequest;
    /**
     * Creates a new audience segment in Criteo
     * @param {AudienceSegmentBody} audienceSegmentBody - Audience segment data
     * @returns {Promise<AudienceSegmentData>} Created audience segment data
     * @throws {Error} If audience segment creation fails
     */
    createAudienceSegment(audienceSegmentBody: AudienceSegmentBody): Promise<AudienceSegmentData>;
}
//# sourceMappingURL=criteoAudience.d.ts.map