import { CacheClient } from "../client";
import { CacheSegment, CacheSegmentInfo, CacheSegmentProp, CacheSegmentPropData, CacheSegmentPropLambda, CacheSegmentSecure } from "./types";
import { CacheEntity, CacheEntityDef, CacheEntityPropLambda } from "../entity";
import { CacheInfoCheck, TR } from "../types";
export declare class CacheSegmentAbstract implements CacheSegment, CacheSegmentSecure {
    private readonly _entities;
    readonly path: string;
    readonly id: string;
    readonly defaultClient: CacheClient;
    readonly prop: Readonly<CacheSegmentProp>;
    constructor(defaultClient: CacheClient, path: string, prop: CacheSegmentPropData, id: string);
    get entities(): Array<CacheEntityDef>;
    newEntity<A extends TR>(path: string, fn: CacheEntityPropLambda<A>, id?: string, differentClient?: CacheClient): CacheEntity<A>;
    info(check: CacheInfoCheck): Promise<CacheSegmentInfo>;
    changeProp(lambda: CacheSegmentPropLambda): void;
    get $secure(): CacheSegmentSecure;
    get $back(): CacheSegment;
    $setProp(prop: CacheSegmentPropData): void;
}
