import { ActiveRecords, RuntimeContext, RuntimeView } from '@oinone/kunlun-engine';
import { Subscription } from '@oinone/kunlun-state';
import { FormFieldWidget } from '../../../basic/field';
import { FormWidget } from '../../form';
import { HomepageConfigRule } from '../typing';
export declare type WidgetConstructor = {
    new (): FormWidget;
};
export declare abstract class AbstractHomepageSettingFieldWidget<T> extends FormFieldWidget<T> {
    initialize(props: any): this;
    protected renderWidgetsSub: Subscription | null;
    protected validateWidgetsSub: Subscription | null;
    protected isReady: boolean;
    protected runtimeHomepageConfigRules: T | undefined;
    protected useHomepageSetting: any;
    protected nodeWidgets: FormWidget[];
    protected createNodeWidget(runtimeContext: RuntimeContext, widgetConstructor: WidgetConstructor, slotName: string, data: ActiveRecords): FormWidget;
    protected disposeNodeWidgets(): void;
    protected validateFormWidgets(): Promise<void>;
    protected abstract initData(data: Record<string, unknown>): HomepageConfigRule;
    protected abstract fetchView(): Promise<RuntimeView | undefined>;
    protected abstract loadNodeWidgets(): any;
    protected abstract pushNewNodeWidget(data: Record<string, unknown>): any;
    protected abstract createNodeWidgets(): any;
    protected abstract disposeNodeWidget(index: number): any;
    protected beforeMount(): void;
    protected unmounted(): void;
}
