import { BehaviorSubject, Observable } from 'rxjs';
import { IAdapter, IConnectionOptions, IBaseModelConstructor, IConnection } from './interfaces';
export declare const ConnectionStatus: {
    NotConnected: string;
    Connected: string;
};
export declare class Connection implements IConnection {
    protected _adapter: IAdapter;
    protected _status: BehaviorSubject<string>;
    protected _options: IConnectionOptions;
    constructor(options: IConnectionOptions);
    name: string;
    adapter: IAdapter;
    status: BehaviorSubject<string>;
    isConnected: boolean;
    init(): Observable<IConnection>;
    attach(model: IBaseModelConstructor): void;
    static init(options: IConnectionOptions): Observable<IConnection>;
    static create(options: IConnectionOptions): IConnection;
}
