import { jest } from "@jest/globals";
/**
 * @see {@link spyOnMatchMedia} instead
 * @internal
 * @remarks \@since 6.0.0
 */
export declare const BASE_MEDIA_QUERY_LIST: MediaQueryList;
/** @remarks \@since 6.0.0 */
export type MatchMediaMatcher = (query: string) => boolean;
/**
 * @see {@link spyOnMatchMedia} for usage
 * @remarks \@since 6.0.0
 * @returns `true` for phone media queries
 */
export declare const matchPhone: MatchMediaMatcher;
/**
 * @see {@link spyOnMatchMedia} for usage
 * @remarks \@since 6.0.0
 * @returns `true` for tablet media queries
 */
export declare const matchTablet: MatchMediaMatcher;
/**
 * @see {@link spyOnMatchMedia} for usage
 * @remarks \@since 6.0.0
 * @returns `true` for desktop media queries
 */
export declare const matchDesktop: MatchMediaMatcher;
/**
 * @see {@link spyOnMatchMedia} for usage
 * @remarks \@since 6.0.0
 * @returns `true` for large desktop media queries
 */
export declare const matchLargeDesktop: MatchMediaMatcher;
/**
 * @see {@link spyOnMatchMedia} for usage
 * @remarks \@since 6.0.0
 * @returns `true` for both desktop and large desktop media queries
 */
export declare const matchAnyDesktop: MatchMediaMatcher;
/**
 * @remarks \@since 6.0.0
 */
export type MatchMediaSpiedFunction = jest.SpiedFunction<typeof window.matchMedia> & {
    /**
     * @example
     * Default Behavior
     * ```tsx
     * const matchMedia = spyOnMatchMedia();
     * render(<Test />);
     *
     * // expect desktop results
     *
     * matchMedia.changeViewport(matchPhone);
     * // expect phone results
     * ```
     *
     * @example
     * Custom Act Behavior
     * ```tsx
     * const matchMedia = spyOnMatchMedia();
     * const { rerender } = render(<Test />);
     *
     * // expect desktop results
     *
     * matchMedia.changeViewport(matchPhone, false);
     * rerender(<Test key="new-key" />);
     *
     * // expect phone results
     * ```
     */
    changeViewport(matcher: MatchMediaMatcher, disableAct?: boolean): void;
};
/**
 * @example
 * Default Behavior
 * ```tsx
 * import { matchPhone, render, spyOnMatchMedia } from "@react-md/test-utils";
 *
 * const matchMedia = spyOnMatchMedia();
 * render(<Test />);
 *
 * // expect desktop results
 *
 * matchMedia.changeViewport(matchPhone);
 * // expect phone results
 * ```
 *
 * @example
 * Set Default Media
 * ```tsx
 * import { matchPhone, render, spyOnMatchMedia } from "@react-md/test-utils";
 *
 * const matchMedia = spyOnMatchMedia(matchPhone);
 * render(<Test />);
 *
 * // expect phone results
 * ```
 *
 * @remarks \@since 6.0.0
 */
export declare function spyOnMatchMedia(defaultMatch?: MatchMediaMatcher): MatchMediaSpiedFunction;
