/**
 * Cookie Consent Management
 *
 * Shared consent functionality for CounterMeasure applications.
 * Handles cookie consent banner, preferences modal, and consent API integration.
 */
export interface ConsentCategories {
    essential: boolean;
    performance: boolean;
    analytics: boolean;
    advertising: boolean;
    social_media: boolean;
}
export interface CategoryInfo {
    id: string;
    name: string;
    description: string;
    required: boolean;
    cookies: CookieInfo[];
}
export interface CookieInfo {
    name: string;
    provider: string;
    cookie_type: string;
    description: string | null;
    duration: string | null;
}
export interface ConsentResponse {
    visitor_id: string;
    categories: ConsentCategories;
    consent_date: string;
    expires_at: string | null;
}
export interface ConsentConfig {
    visitorIdKey?: string;
    consentKey?: string;
    apiBasePath?: string;
    cookieMaxAge?: number;
}
/**
 * Create a consent manager instance with the given configuration.
 */
export declare function createConsentManager(userConfig?: ConsentConfig): {
    generateVisitorId: () => string;
    getVisitorId: () => string;
    getStoredConsent: () => ConsentCategories | null;
    setStoredConsent: (categories: ConsentCategories) => void;
    fetchCategories: () => Promise<CategoryInfo[]>;
    checkConsent: () => Promise<ConsentResponse | null>;
    saveConsent: (categories: ConsentCategories, consentMethod?: string) => Promise<boolean>;
    acceptAll: () => ConsentCategories;
    rejectAll: () => ConsentCategories;
    config: {
        visitorIdKey: string;
        consentKey: string;
        apiBasePath: string;
        cookieMaxAge: number;
    };
};
export declare function getDefaultConsentManager(config?: ConsentConfig): {
    generateVisitorId: () => string;
    getVisitorId: () => string;
    getStoredConsent: () => ConsentCategories | null;
    setStoredConsent: (categories: ConsentCategories) => void;
    fetchCategories: () => Promise<CategoryInfo[]>;
    checkConsent: () => Promise<ConsentResponse | null>;
    saveConsent: (categories: ConsentCategories, consentMethod?: string) => Promise<boolean>;
    acceptAll: () => ConsentCategories;
    rejectAll: () => ConsentCategories;
    config: {
        visitorIdKey: string;
        consentKey: string;
        apiBasePath: string;
        cookieMaxAge: number;
    };
};
export declare const generateVisitorId: () => string;
export declare const getVisitorId: () => string;
export declare const getStoredConsent: () => ConsentCategories | null;
export declare const setStoredConsent: (categories: ConsentCategories) => void;
export declare const fetchCategories: () => Promise<CategoryInfo[]>;
export declare const checkConsent: () => Promise<ConsentResponse | null>;
export declare const saveConsent: (categories: ConsentCategories, method?: string) => Promise<boolean>;
export declare const acceptAll: () => ConsentCategories;
export declare const rejectAll: () => ConsentCategories;
//# sourceMappingURL=index.d.ts.map