import { waitForOptions } from '@testing-library/dom';
import { BabylonContainer } from './queries/utils';
export type GetErrorFunction<ContainerType> = (c: ContainerType, text: string) => string;
export declare function getMultipleElementsFoundError<ContainerType>(message: string, container: ContainerType): Error;
export declare function queryAllByAttribute<AttributeType>(attribute: string, container: BabylonContainer, value: AttributeType): import("@babylonjs/gui").Control[];
export declare function queryByAttribute<AttributeType>(attribute: string, container: BabylonContainer, value: AttributeType): import("@babylonjs/gui").Control;
export declare function buildQueries<ContainerType, MatcherType, ResultType>(queryAllBy: (container: ContainerType, matcher: MatcherType) => ResultType[], getMultipleError: GetErrorFunction<ContainerType>, getMissingError: GetErrorFunction<ContainerType>): {
    queryBy: (container: ContainerType, matcher: MatcherType) => ResultType;
    getAllBy: (container: ContainerType, matcher: MatcherType) => ResultType[];
    getBy: (container: ContainerType, matcher: MatcherType) => ResultType;
    findAllBy: (container: ContainerType, matcher: MatcherType, waitForOptions?: waitForOptions) => Promise<ResultType[]>;
    findBy: (container: ContainerType, matcher: MatcherType, waitForOptions?: waitForOptions) => Promise<ResultType>;
};
