declare module '@ioc:Adonis/Addons/Adonis5-Cache' {
    import { CacheStorage } from '@ioc:Adonis/Addons/Adonis5-Cache';
    type CacheKeysEventPayload = {
        keys: string[];
    };
    type CacheDataEventPayload = {
        [key: string]: unknown;
    };
    type CacheForgottenEventPayload = {
        [key: string]: boolean;
    };
    type EventPayload = CacheDataEventPayload | CacheKeysEventPayload | CacheForgottenEventPayload;
    interface CacheEvents {
        'cache-record:read': CacheDataEventPayload;
        'cache-record:written': CacheDataEventPayload;
        'cache-record:missed': CacheKeysEventPayload;
        'cache-record:forgotten': CacheForgottenEventPayload;
    }
    type CacheEventsConfig = Record<keyof CacheEvents, boolean>;
    type TtlUnits = 'years' | 'year' | 'yrs' | 'yr' | 'y' | 'weeks' | 'week' | 'w' | 'days' | 'day' | 'd' | 'hours' | 'hour' | 'hrs' | 'hr' | 'h' | 'minutes' | 'minute' | 'mins' | 'min' | 'm' | 'seconds' | 'second' | 'secs' | 'sec' | 's' | 'milliseconds' | 'millisecond' | 'msecs' | 'msec' | 'ms';
    interface CacheConfig {
        recordTTL: number;
        currentCacheStorage: CacheStorage;
        enabledCacheStorages: CacheStorage[];
        cacheKeyPrefix: string;
        ttlUnits: TtlUnits;
        enabledEvents: CacheEventsConfig;
    }
}
declare module '@ioc:Adonis/Core/Event' {
    import { CacheDataEventPayload, CacheKeysEventPayload, CacheForgottenEventPayload } from '@ioc:Adonis/Addons/Adonis5-Cache';
    interface EventsList {
        'cache-record:read': CacheDataEventPayload;
        'cache-record:written': CacheDataEventPayload;
        'cache-record:missed': CacheKeysEventPayload;
        'cache-record:forgotten': CacheForgottenEventPayload;
    }
}
