/**
 * @license
 * Copyright 2023 Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
export declare type BaseComponentDelegateProps<T extends HTMLElement> = Partial<T>;
export interface IBaseComponentDelegateOptions {
    style?: Partial<CSSStyleDeclaration> | {
        [key: string]: string;
    };
    attributes?: {
        [key: string]: string;
    } | Map<string, string>;
    parent?: HTMLElement;
    children?: HTMLElement | string;
}
export interface IBaseComponentDelegateConfig<T extends HTMLElement, K extends IBaseComponentDelegateOptions> {
    props?: BaseComponentDelegateProps<T>;
    options?: K;
}
export interface IBaseComponentDelegate<T> {
    element: T;
    destroy(): void;
    disconnect(): void;
}
export declare abstract class BaseComponentDelegate<T extends HTMLElement, K extends IBaseComponentDelegateOptions> implements IBaseComponentDelegate<T> {
    protected _config: IBaseComponentDelegateConfig<T, K>;
    protected _element: T;
    get element(): T;
    constructor(_config?: IBaseComponentDelegateConfig<T, K>);
    destroy(): void;
    disconnect(): void;
    private _initialize;
    private _applyProps;
    private _applyStyle;
    private _applyAttrs;
    private _applyChildren;
    protected abstract _build(): T;
    protected _configure?(): void;
}
