import { CacheClient } from "../client";
import { CacheChannel, CacheChannelDef, CacheChannelInfo, CacheChannelProp, CacheChannelPropData, CacheChannelPropLambda, CacheChannelSecure } from "./types";
import { CacheHash } from "../hash";
import { CacheBasic } from "../basic";
import { CacheSet } from "../set";
import { CacheInvalidator, CacheInvalidatorDeleteRequest, CacheInvalidatorInvalidateRequest, CacheInvalidatorNotifyRequest } from "../invalidator";
import { CacheUtil } from "../util";
import { CacheEntity } from "../entity";
import { CacheInfoCheck, Id, TR } from "../types";
import { CacheFormat } from "../format";
import { CacheAlias } from "../alias";
export declare abstract class CacheChannelAbstract<A extends TR, N extends Id> implements CacheChannel<A, N>, CacheChannelSecure<A, N> {
    readonly full: string;
    protected _pNames: Array<string>;
    readonly entity: CacheEntity<A>;
    readonly hash: CacheHash<A, N>;
    readonly basic: CacheBasic<A, N>;
    readonly set: CacheSet<A, N>;
    readonly alias: CacheAlias<A, N>;
    readonly format: CacheFormat<A, N>;
    readonly client: CacheClient;
    readonly path: string;
    readonly id: string;
    readonly util: CacheUtil;
    readonly prop: Readonly<CacheChannelProp<A>>;
    readonly invalidator: CacheInvalidator<A>;
    protected constructor(entity: CacheEntity<A>, path: string, prop: CacheChannelPropData<A>, id: string, client: CacheClient);
    info(check: CacheInfoCheck): Promise<CacheChannelInfo>;
    changeProp(lambda: CacheChannelPropLambda<A>): void;
    get $flat(): CacheChannelDef;
    get $secure(): CacheChannelSecure<A, N>;
    get $back(): CacheChannel<A, N>;
    get $pNames(): Array<string>;
    $setProp(prop: Partial<CacheChannelPropData<A>>): void;
    $invalidatorForInvalidate(data: CacheInvalidatorInvalidateRequest): void;
    $invalidatorForNotify(data: CacheInvalidatorNotifyRequest): void;
    $invalidatorForDelete(data: CacheInvalidatorDeleteRequest): void;
}
