import { PropertyValues } from 'lit';
import { Ref } from 'lit/directives/ref.js';
import { PktOptionsInputElement } from '../../base-elements/options-input-element';
export type TSelectOption = {
    value: string;
    label: string;
    selected?: boolean;
    disabled?: boolean;
    hidden?: boolean;
};
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<HTMLSelectElement>;
    value: string;
    selectedIndex: number | null;
    selectedOptions: HTMLCollectionOf<HTMLOptionElement> | 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-html').TemplateResult<1>;
    private returnNumberOrNull;
}
