import type { ListOption } from '../../list-option';
import type { ErrorPattern } from '../error/types';
/**
 * The interface that dropdowns of various types implement. The properties in this interface
 * are leveraged by the shared dropdown pattern css.
 */
export interface DropdownPattern extends ErrorPattern {
    position?: DropdownPosition;
}
export declare const DropdownPosition: {
    readonly above: "above";
    readonly below: "below";
};
export type DropdownPosition = (typeof DropdownPosition)[keyof typeof DropdownPosition];
export declare const DropdownAppearance: {
    readonly underline: "underline";
    readonly outline: "outline";
    readonly block: "block";
    readonly frameless: "frameless";
};
export type DropdownAppearance = (typeof DropdownAppearance)[keyof typeof DropdownAppearance];
/**
 * @internal
 *
 * This interface is used to register options with their parent once their
 * 'connectedCallback' method is run. This allows for the "owner", like the
 * Select, to have its value set to that newly registered option earlier than it
 * might otherwise in certain situations. One such scenario is in an Angular
 * reactive form, where the form value is set to an option immediately after
 * dynamically adding it.
 */
export interface ListOptionOwner extends HTMLElement {
    registerOption: (option: ListOption) => void;
}
