export type Property<T, K extends keyof T> = {
    get(): T[K];
    set(value: T[K]): void;
} | {
    get(): T[K];
} | {
    set(value: T[K]): void;
};
export declare class ApiManager<T extends object> {
    private readonly _api;
    constructor();
    get<K extends keyof T>(key: K): T[K];
    set<K extends keyof T>(key: K, value: T[K]): void;
    defineProperty<K extends keyof T>(key: K, property: Property<T, K>): void;
    delete<K extends keyof T>(key: K): void;
    get api(): T;
    private apiDisposedErrorGetter;
    dispose(): void;
}
