import { CacheControl } from '@tusbar/cache-control';
type CacheControlProperties = keyof Omit<CacheControl, 'private' | 'public'>;
type CacheControlNumericProperties = keyof Pick<CacheControl, 'maxAge' | 'sharedMaxAge' | 'maxStaleDuration' | 'minFresh' | 'staleWhileRevalidate' | 'staleIfError'>;
export declare class NuxtMultiCacheCDNHelper {
    _tags: string[];
    _control: CacheControl;
    constructor();
    /**
     * Set a cache-control property.
     */
    set<T extends CacheControlProperties>(key: T, value: CacheControl[T]): NuxtMultiCacheCDNHelper;
    /**
     * Add cache tags.
     */
    addTags(tags: string[]): NuxtMultiCacheCDNHelper;
    /**
     * Sets a numeric value only if it's lower than the current value or if it
     * isn't yet set.
     *
     * For example, this can be used when setting maxAge: You can set a global
     * max age of 1 year for every response. But a component down the tree that
     * shows the current weather can set it to 1 hour. If another component tries
     * to set the max age to 7 days the value won't be set.
     *
     * This basically means that the lowest value will always "win".
     */
    setNumeric<T extends CacheControlNumericProperties>(key: T, value: number): NuxtMultiCacheCDNHelper;
    /**
     * Set as private.
     *
     * Note that once it's set to private you can't change it back to public.
     * This is so that it's possible to change it at any time during the request
     * without running into race conditions.
     */
    private(): NuxtMultiCacheCDNHelper;
    /**
     * Set public.
     *
     * Note that if `private` was already set to `true` this will have no effect.
     */
    public(): NuxtMultiCacheCDNHelper;
}
export {};
