import { CacheOptions } from '../../types';
export type WithCache<T, K extends string> = {
    [P in K as `invalidate${Capitalize<P>}`]: () => void;
};
/**
 * Caches method results with optional expiration
 * @param options Cache configuration options
 */
export declare function Cached(options?: CacheOptions): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
/**
 * Permanently caches method results
 */
export declare function Memoize(): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
