import { IViewComponentState } from "./IViewComponentState";
import { IViewComponentProperties } from "./IVIewComponentProperties";
export interface IViewComponent {
    readonly componentViewId: number;
    ajs: IViewComponentProperties<any, any>;
    configure(...services: any[]): Promise<void>;
    initialize(): Promise<void>;
    destroy(): Promise<void>;
    preventStateChange: boolean;
    setState(state: any, stateChangeRootComponent?: IViewComponent): void;
    clearState(render: boolean): void;
    render(parentElement: HTMLElement, clearStateChangeOnly: boolean, attributes?: NamedNodeMap): HTMLElement;
    insertChildComponent(viewComponentName: string, id: string, state: IViewComponentState, placeholder: string, index?: number): void;
    removeChildComponent(placeholder: string, id: string): void;
    ajsVisualStateTransitionBegin(newElement: Element): void;
}
