import { CacheClient, CacheClientInfo, CacheSecureClientCommand } from "./types";
import { CacheCommand } from "../literal/cache-command";
import { CacheInfoCheck } from "../types";
import { CacheProvider } from "../provider";
export declare abstract class CacheClientAbstract implements CacheClient {
    private static _count;
    protected _lastName: string;
    protected _lastId: string | number;
    protected _lastInfo: unknown;
    readonly num: number;
    readonly provider: CacheProvider;
    readonly native: unknown;
    readonly notSupportCommands: Array<CacheCommand>;
    readonly description: string;
    protected constructor(native: unknown, provider: CacheProvider, description?: string);
    protected _get<T = string>(fn: CacheSecureClientCommand<T>): Promise<T>;
    protected _clearInfo(): void;
    abstract setName(name: string): Promise<boolean>;
    abstract getName(): Promise<string>;
    abstract getId(): Promise<string | number>;
    abstract getInfo(): Promise<unknown>;
    _getName(): Promise<string>;
    _getId(): Promise<string | number>;
    _getInfo(): Promise<unknown>;
    info(check: CacheInfoCheck): Promise<CacheClientInfo>;
}
