/**
 * @license
 * Copyright 2023 Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { IBaseComponent } from './base-component';
export interface IBaseAdapter<T extends HTMLElement = HTMLElement> {
    readonly hostElement: T;
    readonly isConnected: boolean;
    removeHostAttribute(name: string): void;
    getHostAttribute(name: string): string | null;
    setHostAttribute(name: string, value?: string): void;
    toggleHostAttribute(name: string, hasAttribute: boolean, value?: string): void;
    emitHostEvent(type: string, data?: any, bubble?: boolean, cancelable?: boolean): boolean;
    addHostListener(event: string, callback: (event: Event) => void, options?: boolean | AddEventListenerOptions): void;
    removeHostListener(event: string, callback: (event: Event) => void): void;
    addWindowListener(event: string, callback: (event: Event) => void, options?: boolean | AddEventListenerOptions): void;
    removeWindowListener(event: string, callback: (event: Event) => void, options?: boolean | EventListenerOptions): void;
    addDocumentListener(event: string, callback: (event: Event) => void, options?: boolean | AddEventListenerOptions): void;
    removeDocumentListener(event: string, callback: (event: Event) => void, options?: boolean | EventListenerOptions): void;
    getScreenWidth(): number;
    setBodyAttribute(name: string, value: string): void;
    removeBodyAttribute(name: string): void;
    redispatchEvent(event: Event, options?: {
        bubbles?: boolean;
        cancelable?: boolean;
        composed?: boolean;
    }): boolean;
}
export declare class BaseAdapter<T extends IBaseComponent> implements IBaseAdapter<T> {
    protected _component: T;
    constructor(_component: T);
    get hostElement(): T;
    getHostAttribute(name: string): string | null;
    setHostAttribute(name: string, value?: string): void;
    removeHostAttribute(name: string): void;
    toggleHostAttribute(name: string, hasAttribute: boolean, value?: string): void;
    emitHostEvent(type: string, data?: any, bubble?: boolean, cancelable?: boolean): boolean;
    addHostListener(event: string, callback: (event: Event) => void, options?: boolean | AddEventListenerOptions): void;
    removeHostListener(event: string, callback: (event: Event) => void): void;
    addWindowListener(event: string, callback: (event: Event) => void, options?: boolean | AddEventListenerOptions): void;
    removeWindowListener(event: string, callback: (event: Event) => void, options?: boolean | EventListenerOptions): void;
    addDocumentListener(event: string, callback: (event: Event) => void, options?: boolean | AddEventListenerOptions): void;
    removeDocumentListener(event: string, callback: (event: Event) => void, options?: boolean | EventListenerOptions): void;
    getScreenWidth(): number;
    setBodyAttribute(name: string, value: string): void;
    removeBodyAttribute(name: string): void;
    get isConnected(): boolean;
    redispatchEvent(event: CustomEvent, options?: {
        bubbles?: boolean;
        cancelable?: boolean;
        composed?: boolean;
    }): boolean;
}
