import { ComponentBase } from '../ComponentBase';
import { RunConfig } from '../../DomRender';
import { RawSet } from '../../rawsets/RawSet';
import { OtherData } from '../../lifecycle/OnChangeAttrRender';
import { OnInitRender } from '../../lifecycle/OnInitRender';
import { OnCreateRenderDataParams } from '../../lifecycle/OnCreateRenderData';
import { OnCreateRender } from '../../lifecycle/OnCreateRender';
export declare namespace Details {
    const selector = "dr-details";
    type Attribute = {
        class?: string;
        toggle_form_reset?: boolean;
        disableOtherClickClose?: boolean;
        toggle?: (open: boolean) => void;
    };
    type BodyAttribute = {
        float?: 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right';
    } & Attribute;
    type FormAttribute = {
        disabledSubmit?: null;
        submit?: (event: SubmitEvent, element: HTMLFormElement) => void;
    } & BodyAttribute;
    class Summary extends ComponentBase<Attribute> {
        constructor();
    }
    class Body extends ComponentBase<BodyAttribute> {
        private $element?;
        constructor();
    }
    const isBody: (instance: any) => instance is Body;
    class Form extends ComponentBase<FormAttribute> {
        private $element?;
        constructor();
        submit(element: HTMLFormElement, event: SubmitEvent): void;
        reset(): void;
    }
    const isForm: (instance: any) => instance is Form;
    class Details extends ComponentBase<Attribute> implements OnCreateRender, OnInitRender {
        private documentClickSubscription?;
        private toggleSubscription?;
        private element?;
        onCreateRenderData(data: OnCreateRenderDataParams): void;
        onCreateRender(...param: any[]): void;
        toggle(element: HTMLDetailsElement): void;
        onInitRender(param: any, rawSet: RawSet): void;
        onChangeAttrRender(name: string, value: any, other: OtherData): void;
        onDestroyRender(...metaData: any[]): void;
    }
}
declare const _default: {
    detailsSummary: (config?: RunConfig) => import("../../configs/TargetElement").TargetElement;
    detailsBody: (config?: RunConfig) => import("../../configs/TargetElement").TargetElement;
    detailsForm: (config?: RunConfig) => import("../../configs/TargetElement").TargetElement;
    details: (config?: RunConfig) => import("../../configs/TargetElement").TargetElement;
};
export default _default;
//# sourceMappingURL=Details.d.ts.map