import { PropertyValues } from 'lit'; import { Ref } from 'lit/directives/ref.js'; import { PktOptionsInputElement } from '../../base-elements/options-input-element'; import { TSelectOption } from '../../shared-types/select'; export type { TSelectOption } from '../../shared-types/select'; export interface IPktSelect { options: TSelectOption[]; value: string; } /** * Pkt Select is a wrapper for the native select element using the pkt-input-wrapper component. * * The component will prioritize options passed as a prop over options passed as children if both are provided. * This is to allow for dynamic options that might change in the case of both children/slot and props are provided. * * @slot (default) - Options to be rendered as children * @prop {TSelectOption[]} options - Options to be rendered as children * * */ declare global { interface HTMLElementTagNameMap { 'pkt-select': PktSelect & HTMLSelectElement; } } export declare class PktSelect extends PktOptionsInputElement<{}, TSelectOption> implements IPktSelect { inputRef: Ref; value: string; selectedIndex: number | null; selectedOptions: HTMLCollectionOf | undefined; constructor(); connectedCallback(): void; add(item: HTMLOptionElement, before?: HTMLOptionElement | number): void; remove(item?: number): void; item(index: number): HTMLOptionElement | null | undefined; namedItem(name: string): HTMLOptionElement | null | undefined; showPicker(): void; attributeChangedCallback(name: string, _old: string, value: string): void; update(changedProperties: PropertyValues): void; protected firstUpdated(_changedProperties: PropertyValues): void; render(): import('lit').TemplateResult<1>; private returnNumberOrNull; }