import { default as DomTestingLibrary } from '@testing-library/dom';
import { PktBackLink, PktCheckbox, PktCombobox, PktDatepicker, PktHelptext, PktIcon, PktInputWrapper, PktLoader, PktProgressbar, PktRadioButton, PktSelect, PktTextarea } from '@oslokommune/punkt-elements';
export declare const PKT_CUSTOM_FORMFIELDS: string[];
type PTLElementType = PktBackLink | PktCheckbox | PktCombobox | PktDatepicker | PktHelptext | PktIcon | PktInputWrapper | PktLoader | PktProgressbar | PktRadioButton | PktSelect | PktTextarea | HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;
export type PktTestingLibraryOptions = Pick<typeof DomTestingLibrary, 'fireEvent' | 'findAllByLabelText' | 'findAllByTestId' | 'findAllByDisplayValue' | 'findAllByText' | 'getAllByLabelText' | 'getAllByTestId' | 'getAllByDisplayValue' | 'getAllByText'>;
export type LabelOrElement<ElementType = PTLElementType> = string | RegExp | ElementType | HTMLLabelElement;
export type PktElementValueType = string | number | Date;
export type PktTestingLibrary = {
    findPktElementByLabelText: (label: string | RegExp | HTMLLabelElement, container?: HTMLElement) => Promise<PTLElementType>;
    getPktElementByLabelText: (label: string | RegExp | HTMLLabelElement, container?: HTMLElement) => PTLElementType;
    getPktSelectOptions: (labelOrElement: LabelOrElement<PktSelect>, onlySelected?: boolean) => Array<PktOption>;
    getAllPktElementsByLabelText: (label: string, container?: HTMLElement) => Element[];
    setPktElementChecked: (labelOrElement: LabelOrElement, checked: boolean) => Promise<boolean>;
    isPktElementChecked: (labelOrElement: LabelOrElement) => boolean;
    setPktElementValue: (labelOrElement: LabelOrElement, valueOrValues: PktElementValueType | Array<PktElementValueType>, optionsOrUseInputEvent?: boolean | {
        useInputEventForNative?: boolean;
        useChangeEventForNative?: boolean;
        setValuePropForNative?: boolean;
    }) => Promise<boolean>;
    pktClickButton: (labelOrElement: LabelOrElement<HTMLInputElement | HTMLButtonElement>) => Promise<boolean>;
    waitForPktElementsToBeDefined: () => Promise<any>;
    setPktSelectedOptionsByLabel: (labelOrElement: LabelOrElement<PktSelect>, ...desiredOptionLabels: Array<string>) => Promise<any>;
    getPktElementByDisplayValue: (labelOrElement: string | RegExp, container?: HTMLElement) => PTLElementType;
    findPktElementByDisplayValue: (labelOrElement: string | RegExp, container?: HTMLElement) => Promise<PTLElementType>;
};
export declare const setupPktTestingLibrary: (options: PktTestingLibraryOptions) => PktTestingLibrary;
/**
 * Representerer en option i en PktSelect.
 *
 * @property {string} 0 - verdien (value)
 * @property {string | null} 1 - Tekstinnholdet, <option>tekstinnhold</option>
 * @property {boolean} 2 - Om denne er valgt (selected)
 */
export type PktOption = [string, string | undefined, boolean];
export {};
