import { AliasAny, AliasAnyArray, Id, KeyAny, TR } from "../types";
import { CacheAlias, CacheAliasDef, CacheAliasSecure, CmdAliasSet } from "./types";
import { CacheInvalidator } from "../invalidator";
import { CacheFormat } from "../format";
import { CacheChannel, CacheChannelProp, CacheChannelPropSecure } from "../channel";
import { CacheResultBoolean, CacheResultNumber } from "../command";
import { CacheSetSecure } from "../set";
import { CacheBasic, CacheBasicSecure } from "../basic";
export declare abstract class CacheAliasAbstract<A extends TR, N extends Id> implements CacheAlias<A, N>, CacheAliasSecure<A, N> {
    protected readonly channel: CacheChannel<A, N>;
    protected format: CacheFormat<A, N>;
    protected invalidator: CacheInvalidator<A>;
    protected prop: Readonly<CacheChannelProp<A>>;
    protected check: CacheChannelPropSecure<A>;
    protected basic: CacheBasic<A, N>;
    protected basicSecure: CacheBasicSecure<A, N>;
    protected setSecure: CacheSetSecure<A, N>;
    protected constructor(channel: CacheChannel<A, N>);
    delete(alias: AliasAny): Promise<CacheResultNumber>;
    deleteMore(aliases: AliasAnyArray): Promise<CacheResultNumber>;
    exists(alias: AliasAny): Promise<CacheResultBoolean>;
    existMore(aliases: AliasAnyArray): Promise<Array<CacheResultBoolean>>;
    getDoc(alias: AliasAny): Promise<Partial<A>>;
    getOwner(alias: AliasAny): Promise<string>;
    getRaw<T>(alias: AliasAny): Promise<T>;
    hasAlias(owner: KeyAny): Promise<CacheResultBoolean>;
    listAliases(owner: KeyAny): Promise<Array<string>>;
    listDocs(aliases: AliasAnyArray): Promise<Array<Partial<A>>>;
    listOwners(aliases: AliasAnyArray): Promise<Array<string>>;
    listRaws<T>(aliases: AliasAnyArray): Promise<Array<T>>;
    setOwner(alias: AliasAny, owner: KeyAny, opt?: CmdAliasSet): Promise<CacheResultBoolean>;
    unlink(alias: AliasAny): Promise<CacheResultNumber>;
    unlinkMore(aliases: AliasAnyArray): Promise<CacheResultNumber>;
    get $flat(): CacheAliasDef;
    get $secure(): CacheAliasSecure<A, N>;
    get $back(): CacheAlias<A, N>;
    $init(): void;
}
