import { setupRtl } from '@codecademy/gamut-tests'; import { RefObject } from 'react'; import { InfoTip } from '../InfoTip'; import { TipPlacements } from '../shared/types'; type InfoTipView = ReturnType>>['view']; type ViewParam = { view: InfoTipView; }; type LinkTextParam = { linkText: string; }; type InfoParam = { info: string; }; type PlacementParam = { placement: TipPlacements; }; export declare const createFocusOnClick: (ref: RefObject) => ({ isTipHidden }: { isTipHidden: boolean; }) => void; export declare const createLinkSetup: ({ linkText, href, }: { linkText: string; href?: string; }) => { containerRef: RefObject; info: import("react/jsx-runtime").JSX.Element; onClick: ({ isTipHidden }: { isTipHidden: boolean; }) => void; }; export declare const createMultiLinkSetup: ({ firstLinkText, secondLinkText, firstHref, secondHref, }: { firstLinkText: string; secondLinkText: string; firstHref?: string; secondHref?: string; }) => { containerRef: RefObject; info: import("react/jsx-runtime").JSX.Element; onClick: ({ isTipHidden }: { isTipHidden: boolean; }) => void; }; export declare const clickButton: (view: InfoTipView) => Promise; export declare const pressKey: (key: string) => Promise; export declare const waitForLinkToHaveFocus: ({ view, linkText, }: ViewParam & LinkTextParam) => Promise; export declare const openTipAndWaitForLink: ({ view, linkText, }: ViewParam & LinkTextParam) => Promise; export declare const openTipTabToLinkAndWaitForFocus: (view: InfoTipView, linkText: string) => Promise; export declare const testFocusWrap: ({ view, direction, }: ViewParam & { direction: "forward" | "backward"; }) => Promise; export declare const testTabFromPopoverWithNoInteractiveElements: (view: InfoTipView) => Promise; export declare const testTabbingBetweenLinks: ({ view, firstLinkText, secondLinkText, placement, }: ViewParam & { firstLinkText: string; secondLinkText: string; placement: TipPlacements; }) => Promise; export declare const setupLinkTestWithPlacement: (linkText: string, placement: TipPlacements, renderView: ReturnType>) => { view: import("@testing-library/react").RenderResult; info: import("react/jsx-runtime").JSX.Element; onClick: ({ isTipHidden }: { isTipHidden: boolean; }) => void; }; export declare const setupMultiLinkTestWithPlacement: (firstLinkText: string, secondLinkText: string, placement: TipPlacements, renderView: ReturnType>) => { view: import("@testing-library/react").RenderResult; info: import("react/jsx-runtime").JSX.Element; onClick: ({ isTipHidden }: { isTipHidden: boolean; }) => void; }; export declare const testEscapeKeyWithOutsideFocus: ({ view, info, }: ViewParam & InfoParam) => Promise; export declare const testOutsideClick: ({ view, info, placement, }: ViewParam & InfoParam & PlacementParam) => Promise; export declare const testModalDoesNotCloseInfoTip: ({ view, info, placement, }: ViewParam & InfoParam & PlacementParam) => Promise; export declare const testNonBlockingDialogAllowsEscapeToCloseTip: ({ view, info, placement, }: ViewParam & InfoParam & PlacementParam) => Promise; export declare const testRapidToggle: ({ view, onClick, }: ViewParam & { onClick: jest.Mock; }) => Promise; export declare const testInfoTipInsideModalClosesOnEscape: ({ info, placement, }: InfoParam & PlacementParam) => Promise; type ViewWithQueries = { getAllByText: (text: string) => HTMLElement[]; getAllByLabelText: (text: string) => HTMLElement[]; }; export declare const openInfoTipsWithKeyboard: ({ view, count, }: { view: ViewWithQueries; count: number; }) => Promise; export declare const expectTipsVisible: (tips: { text: string; }[]) => void; export declare const expectTipsClosed: () => void; export {};