/**
 * @license
 * Copyright 2023 Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { BaseAdapter, IBaseAdapter } from '../../core/base/base-adapter';
import { createUserInteractionListener } from '../../core/utils';
import { IListItemComponent } from './list-item';
export interface IListItemAdapter extends IBaseAdapter {
    initializeAccessibility(): void;
    getListItem(): IListItemComponent;
    addListener(type: string, listener: (evt: Event) => void, options?: AddEventListenerOptions): void;
    removeListener(type: string, listener: (evt: Event) => void): void;
    createRipple(): any;
    setStatic(value: boolean): void;
    setTwoLine(value: boolean): void;
    setThreeLine(value: boolean): void;
    getLineCount(): number;
    setActive(value: boolean): void;
    setSelected(value: boolean): void;
    tryToggleCheckboxRadio(value?: boolean): void;
    setFocus(): void;
    hasFocus(): boolean;
    setRole(role: string): void;
    setDisabled(disabled: boolean): void;
    setDense(dense: boolean): void;
    setIndented(indented: boolean): void;
    setWrap(value: boolean): void;
    trySelect(value: unknown): boolean | null;
    createUserInteractionListener(): ReturnType<typeof createUserInteractionListener>;
}
export declare class ListItemAdapter extends BaseAdapter<IListItemComponent> implements IListItemAdapter {
    private _listItemElement;
    private _defaultSlot;
    constructor(component: IListItemComponent);
    private _initialize;
    initializeAccessibility(): void;
    getListItem(): IListItemComponent;
    /**
     * Adds an event listener to the `<forge-list-item>` host element.
     * @param {string} type The event type.
     * @param {Function} listener The event callback.
     */
    addListener(type: string, listener: (evt: Event) => void, options?: AddEventListenerOptions): void;
    /**
     * Removes an event listener from the `<forge-list-item>` host element.
     * @param {string} type The event type.
     * @param {Function} listener The event callback.
     */
    removeListener(type: string, listener: (evt: Event) => void): void;
    /**
     * Creates a ripple instance on the list item.
     * @returns {ForgeRipple}
     */
    createRipple(): any;
    /**
     * Toggles the static state of this list item.
     * @param {boolean} value The static state.
     */
    setStatic(value: boolean): void;
    /**
     * Sets this list item as a two-line list item.
     * @param {boolean} value The two-line state.
     */
    setTwoLine(value: boolean): void;
    /**
     * Sets this list item as a three-line list item.
     * @param {boolean} value The three-line state.
     */
    setThreeLine(value: boolean): void;
    /**
     * Determines how many lines the list item is displaying.
     */
    getLineCount(): number;
    /**
     * Toggles the active class of the list item.
     * @param {boolean} value The active state.
     */
    setActive(value: boolean): void;
    /**
     * Toggles the selected class of the list item.
     * @param {boolean} value The active state.
     */
    setSelected(value: boolean): void;
    /**
     * Attempts to toggle a checkbox or radio button within the list item if it can find one.
     */
    tryToggleCheckboxRadio(value?: boolean): void;
    /** Attempts to set focus to this list item. */
    setFocus(): void;
    /** Returns whether the component has focus or not. */
    hasFocus(): boolean;
    /**
     * Sets the role on the list item element.
     * @param role The role.
     */
    setRole(role: string): void;
    setDisabled(disabled: boolean): void;
    setDense(dense: boolean): void;
    setIndented(indented: boolean): void;
    setWrap(value: boolean): void;
    /**
     * Attempts to set the selected state of the list item element and it's visual indicators
     * @param value The value to compare to the parent list element's selected value
     * @returns Returns whether the list item is selected or not
     */
    trySelect(value: unknown): boolean | null;
    createUserInteractionListener(): ReturnType<typeof createUserInteractionListener>;
}
