import { Client } from '../index'; import { Ui, UIOptionsInterface } from '../ui'; export interface ViewConstructor { new (client: Client, popup: Ui, viewContainer: any, params: any): T; } export type ViewFactory = (client: Client, popup: Ui, viewContainer: any, params: any) => ViewInterface; export type ViewComponent = ViewFactory | ViewConstructor; export interface ViewInterface { client: Client; ui: Ui; viewContainer: HTMLDivElement | any; params: IViewParameters; render(): void; init(): void; update?(params: IViewParameters): void; } export interface IViewParameters { options: UIOptionsInterface | any; viewOptions: any; data?: any; } export declare abstract class AbstractView implements ViewInterface { client: Client; ui: Ui; viewContainer: HTMLDivElement | any; params: IViewParameters; constructor(client: Client, popup: Ui, viewContainer: HTMLDivElement | any, params: IViewParameters); init(): void; abstract render(): void; update(params: Partial): void; }