import { TeamSpeak } from "../TeamSpeak";
import { QueryResponse } from "../types/QueryResponse";
export declare abstract class Abstract {
    private namespace;
    private propcache;
    private parent;
    constructor(parent: TeamSpeak, props: QueryResponse, namespace: string);
    /** retrieves the namespace of this class */
    getNameSpace(): string;
    /** returns JSONifyable data */
    toJSON(includeNameSpace?: boolean): Record<string, any>;
    /**
     * retrieves a single property value by the given name
     * @param name the name from where the value should be retrieved
     */
    getPropertyByName<T extends keyof QueryResponse>(name: T): QueryResponse[T];
    /** updates the cache with the given object */
    updateCache(props: QueryResponse): this;
    /** returns the parent class */
    getParent(): TeamSpeak;
}
