import { ByRoleOptions as ByRoleOptions_ , Matcher , MatcherOptions as MatcherOptions_ , SelectorMatcherOptions as SelectorMatcherOptions_ , waitForOptions , } from '@testing-library/dom' ; import { ElementHandle } from 'puppeteer' ; type Element = ElementHandle ; type MatcherOptions = Omit < MatcherOptions_ , 'normalizer' > ; type SelectorMatcherOptions = Omit < SelectorMatcherOptions_ , 'normalizer' > ; type ByRoleOptions = Omit < ByRoleOptions_ , 'normalizer' > ; interface IQueryMethods { queryByPlaceholderText ( el , m , opts ? ) : Promise < Element | null > ; queryAllByPlaceholderText ( el , m , opts ? ) : Promise < Element [ ] > ; getByPlaceholderText ( el , m , opts ? ) : Promise < Element > ; getAllByPlaceholderText ( el , m , opts ? ) : Promise < Element [ ] > ; findByPlaceholderText ( el , m , opts ? , waitForOpts ? ) : Promise < Element > ; findAllByPlaceholderText ( el , m , opts ? , waitForOpts ? ) : Promise < Element [ ] > ; queryByText ( el , m , opts ? ) : Promise < Element | null > ; queryAllByText ( el , m , opts ? ) : Promise < Element [ ] > ; getByText ( el , m , opts ? ) : Promise < Element > ; getAllByText ( el , m , opts ? ) : Promise < Element [ ] > ; findByText ( el , m , opts ? , waitForOpts ? ) : Promise < Element > ; findAllByText ( el , m , opts ? , waitForOpts ? ) : Promise < Element [ ] > ; queryByLabelText ( el , m , opts ? ) : Promise < Element | null > ; queryAllByLabelText ( el , m , opts ? ) : Promise < Element [ ] > ; getByLabelText ( el , m , opts ? ) : Promise < Element > ; getAllByLabelText ( el , m , opts ? ) : Promise < Element [ ] > ; findByLabelText ( el , m , opts ? , waitForOpts ? ) : Promise < Element > ; findAllByLabelText ( el , m , opts ? , waitForOpts ? ) : Promise < Element [ ] > ; queryByAltText ( el , m , opts ? ) : Promise < Element | null > ; queryAllByAltText ( el , m , opts ? ) : Promise < Element [ ] > ; getByAltText ( el , m , opts ? ) : Promise < Element > ; getAllByAltText ( el , m , opts ? ) : Promise < Element [ ] > ; findByAltText ( el , m , opts ? , waitForOpts ? ) : Promise < Element > ; findAllByAltText ( el , m , opts ? , waitForOpts ? ) : Promise < Element [ ] > ; queryByTestId ( el , m , opts ? ) : Promise < Element | null > ; queryAllByTestId ( el , m , opts ? ) : Promise < Element [ ] > ; getByTestId ( el , m , opts ? ) : Promise < Element > ; getAllByTestId ( el , m , opts ? ) : Promise < Element [ ] > ; findByTestId ( el , m , opts ? , waitForOpts ? ) : Promise < Element > ; findAllByTestId ( el , m , opts ? , waitForOpts ? ) : Promise < Element [ ] > ; queryByTitle ( el , m , opts ? ) : Promise < Element | null > ; queryAllByTitle ( el , m , opts ? ) : Promise < Element [ ] > ; getByTitle ( el , m , opts ? ) : Promise < Element > ; getAllByTitle ( el , m , opts ? ) : Promise < Element [ ] > ; findByTitle ( el , m , opts ? , waitForOpts ? ) : Promise < Element > ; findAllByTitle ( el , m , opts ? , waitForOpts ? ) : Promise < Element [ ] > ; queryByRole ( el , m , opts ? ) : Promise < Element | null > ; queryAllByRole ( el , m , opts ? ) : Promise < Element [ ] > ; getByRole ( el , m , opts ? ) : Promise < Element > ; getAllByRole ( el , m , opts ? ) : Promise < Element [ ] > ; findByRole ( el , m , opts ? , waitForOpts ? ) : Promise < Element > ; findAllByRole ( el , m , opts ? , waitForOpts ? ) : Promise < Element [ ] > ; queryByDisplayValue ( el , m , opts ? ) : Promise < Element | null > ; queryAllByDisplayValue ( el , m , opts ? ) : Promise < Element [ ] > ; getByDisplayValue ( el , m , opts ? ) : Promise < Element > ; getAllByDisplayValue ( el , m , opts ? ) : Promise < Element [ ] > ; findByDisplayValue ( el , m , opts ? , waitForOpts ? ) : Promise < Element > ; findAllByDisplayValue ( el , m , opts ? , waitForOpts ? ) : Promise < Element [ ] > ; } export type BoundFunction < T > = T extends ( attribute : string , element : Element , text : infer P , options : infer Q ) => infer R ? ( text : P , options ? : Q ) => R : T extends ( a1 : any , text : infer P , options : infer Q , waitForOptions : infer W ) => infer R ? ( text : P , options ? : Q , waitForOptions ? : W ) => R : T extends ( a1 : any , text : infer P , options : infer Q ) => infer R ? ( text : P , options ? : Q ) => R : never ; export type BoundFunctions < T > = { [ P in keyof T ] : BoundFunction < T [ P ] > ; } ; export interface IScopedQueryUtils extends BoundFunctions < IQueryMethods > { getQueriesForElement ( ) : IScopedQueryUtils ; getNodeText ( ) : Promise < string > ; } export interface IQueryUtils extends IQueryMethods { getQueriesForElement ( ) : IScopedQueryUtils ; getNodeText ( el ) : Promise < string > ; } export interface IConfigureOptions { testIdAttribute : string ; }