import XAPI from '.'; import { Registration } from './feedback'; import { Listener, Path } from './types'; export declare type AnyConstructor = new (...args: any[]) => T; export declare class Component { readonly xapi: XAPI; prefix: string; constructor(xapi: XAPI); normalizePath(path: Path): (string | number)[]; } export interface Listenable { on(path: Path, listener: Listener): Registration; once(path: Path, listener: Listener): Registration; off(): void; } export declare function Listenable, T = any>(Base: B): B & AnyConstructor>; export interface Gettable { get(path: Path): Promise; } export declare function Gettable, T = any>(Base: B): B & AnyConstructor>; export interface Settable { set(path: Path, value: T): Promise; } export declare function Settable, T = number | string>(Base: B): B & AnyConstructor>;