/**
 * @license
 * Copyright Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { ICustomElementFoundation } from '@tylertech/forge-core';
import { ILabelAdapter } from './label-adapter';
export interface ILabelFoundation extends ICustomElementFoundation {
    for: string | null | undefined;
    forElement: HTMLElement | null | undefined;
    dynamic: boolean;
    nonInteractive: boolean;
    legend: boolean;
    disconnect(): void;
    update(): void;
}
export declare class LabelFoundation implements ILabelFoundation {
    private _adapter;
    private _for;
    private _forElement;
    private _clickTarget;
    private _dynamic;
    private _nonInteractive;
    private _legend;
    private _isConnected;
    private readonly _clickListener;
    private readonly _slotChangeListener;
    private readonly _mutationCallback;
    constructor(_adapter: ILabelAdapter);
    initialize(): void;
    disconnect(): void;
    update(): void;
    /**
     * Emit an event to give ancestor elements a chance to connect
     */
    private _initializeAsLegend;
    /**
     * Search for child or id-targetted elements to connect to
     */
    private _initializeAsLabel;
    private _handleClick;
    private _handleSlotChange;
    private _handleMutation;
    private _connect;
    private _disconnect;
    private _tryConnect;
    get for(): string | null | undefined;
    set for(value: string | null | undefined);
    get forElement(): HTMLElement | null | undefined;
    set forElement(value: HTMLElement | null | undefined);
    get clickTarget(): HTMLElement | null | undefined;
    set clickTarget(value: HTMLElement | null | undefined);
    get dynamic(): boolean;
    set dynamic(value: boolean);
    get nonInteractive(): boolean;
    set nonInteractive(value: boolean);
    get legend(): boolean;
    set legend(value: boolean);
}
