/**
 * The `pn-select` uses a native `select` element under the hood.
 * Use the slot to include `option` elements.
 *
 * Just like a regular `select`, you can use the `selected` prop on the nested option elements to preselect an option.
 *
 * @slot - This is the default slot, where the `option` elements go.
 *
 * @nativeChange Use the `change` event to listen to changes on the select element.
 */
export declare class PnSelect {
    id: string;
    idHelpertext: string;
    select: HTMLSelectElement;
    mo: MutationObserver;
    hostElement: HTMLElement;
    /** Label placed above the select. */
    label: string;
    /** Display a helper text underneath the select. */
    helpertext?: string;
    /** Select HTML id */
    selectId: string;
    /** Display an icon to the left of the select input. */
    icon?: string;
    /** Use the compact label variant. @since v7.21.0 */
    compact?: boolean;
    /** HTML select name. @category HTML */
    name: string;
    /** HTML form name. @category HTML */
    form: string;
    /** HTML autocomplete. @category HTML */
    autocomplete: string;
    /**
     * Set the select as required.
     * @category Validation
     */
    required?: boolean;
    /**
     * Disable the select.
     * @category Validation
     */
    disabled?: boolean;
    /**
     * Trigger the invalid state.
     * @category Validation
     */
    invalid?: boolean;
    /**
     * Display an error message and trigger the invalid state.
     * @category Validation
     */
    error?: string;
    componentDidLoad(): void;
    hasError(): boolean;
    hasMessage(): boolean;
    private renderLabel;
    render(): any;
}
