export type StorageItemOptions<T> = {
    area?: chrome.storage.AreaName;
    defaultValue?: T;
};
export declare class StorageItem<
/** Only specify this if you don't have a default value */
Base, 
/** The return type will be undefined unless you provide a default value */
Return = Base | undefined> {
    readonly key: string;
    readonly area: chrome.storage.AreaName;
    readonly defaultValue?: Return;
    /** @deprecated Use `onChanged` instead */
    onChange: (callback: (value: Exclude<Return, undefined>) => void, signal?: AbortSignal) => void;
    constructor(key: string, { area, defaultValue, }?: StorageItemOptions<Exclude<Return, undefined>>);
    get: () => Promise<Return>;
    set: (value: Exclude<Return, undefined>) => Promise<void>;
    has: () => Promise<boolean>;
    remove: () => Promise<void>;
    onChanged(callback: (value: Exclude<Return, undefined>) => void, signal?: AbortSignal): void;
}
