import { CSSResult } from 'lit';
import { LitElement } from 'lit';
import { PropertyValueMap } from 'lit';
import { TemplateResult } from 'lit-html';

export declare class DropdownComponent extends PlusBase {
    dropdown: Promise<HTMLElement> | undefined;
    size: "sm" | "md" | "lg";
    text: any;
    position: PlacementType;
    context: DropdownContext;
    protected updated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void;
    render(): TemplateResult<1>;
}

export declare interface DropdownContext {
    onSelect: (id: string | number) => void;
    size: "sm" | "md" | "lg";
    slot: HTMLElement[];
}

export declare const dropdownContext: {
    __context__: DropdownContext;
};

declare type PlacementType = "top" | "top-start" | "top-end" | "bottom" | "bottom-start" | "bottom-end" | "left" | "left-start" | "left-end" | "right" | "right-start" | "right-end";

declare abstract class PlusBase extends LitElement {
    static styles: CSSResult[];
    id: string;
    name: string;
    value: string | number;
    disabled: boolean;
    readonly: boolean;
    required: boolean;
    loading: boolean;
    title: string;
    emit(name: string, options?: CustomEventInit): CustomEvent<any>;
}

export { }
