import type { NobjcObject } from "objc-js";
import type { _NSCacheDelegate } from "./NSCacheDelegate.js";
import type { _NSObject } from "./NSObject.js";
import type { _NSString } from "./NSString.js";
export declare class _NSCache extends _NSObject {
    static alloc(): _NSCache;
    static new(): _NSCache;
    init(): _NSCache;
    objectForKey$(key: NobjcObject): NobjcObject | null;
    /** 0 cost */
    setObject$forKey$(obj: NobjcObject, key: NobjcObject): void;
    setObject$forKey$cost$(obj: NobjcObject, key: NobjcObject, g: number): void;
    removeObjectForKey$(key: NobjcObject): void;
    removeAllObjects(): void;
    name(): _NSString;
    setName$(value: _NSString): void;
    delegate(): _NSCacheDelegate | null;
    setDelegate$(value: _NSCacheDelegate | null): void;
    /** limits are imprecise/not strict */
    totalCostLimit(): number;
    setTotalCostLimit$(value: number): void;
    /** limits are imprecise/not strict */
    countLimit(): number;
    setCountLimit$(value: number): void;
    evictsObjectsWithDiscardedContent(): boolean;
    setEvictsObjectsWithDiscardedContent$(value: boolean): void;
}
