import type * as puppeteer from 'puppeteer-core';
import type * as Host from '../../../front_end/core/host/host.js';
import { AsyncScope } from '../../conductor/async-scope.js';
import type { DevToolsPage } from '../shared/frontend-helper.js';
import type { InspectedPage } from '../shared/target-helper.js';
export declare const ELEMENTS_PANEL_SELECTOR = ".panel[aria-label=\"elements\"]";
export declare const SECTION_SUBTITLE_SELECTOR = ".styles-section-subtitle";
export declare const INACTIVE_GRID_ADORNER_SELECTOR = "[aria-label=\"Enable grid mode\"]";
export declare const ACTIVE_GRID_ADORNER_SELECTOR = "[aria-label=\"Disable grid mode\"]";
export declare const INACTIVE_STARTING_STYLE_ADORNER_SELECTOR = "[aria-label=\"Enable @starting-style mode\"]";
export declare const ACTIVE_STARTING_STYLE_ADORNER_SELECTOR = "[aria-label=\"Disable @starting-style mode\"]";
export declare const STYLE_PROPERTIES_SELECTOR = ".tree-outline-disclosure [role=\"treeitem\"]";
export declare const SEARCH_BOX_SELECTOR = ".search-bar";
export declare const EMULATE_FOCUSED_PAGE = "Emulate a focused page";
export declare const openLayoutPane: (devToolsPage: DevToolsPage) => Promise<void>;
export declare const waitForAdorners: (expectedAdorners: Array<{
    textContent: string;
    isActive: boolean;
}>, devToolsPage: DevToolsPage, activeSelector?: string) => Promise<void>;
export declare const toggleAdornerSetting: (type: string, devToolsPage: DevToolsPage) => Promise<void>;
export declare const waitForSelectedNodeToBeExpanded: (devToolsPage: DevToolsPage) => Promise<void>;
export declare const waitForAdornerOnSelectedNode: (expectedAdornerText: string, devToolsPage: DevToolsPage) => Promise<void>;
export declare const waitForSpecificAdornerOnSelectedNode: (selector: string, devToolsPage: DevToolsPage) => Promise<void>;
export declare const waitForNoAdornersOnSelectedNode: (devToolsPage: DevToolsPage) => Promise<void>;
export declare const toggleElementCheckboxInLayoutPane: (devToolsPage: DevToolsPage) => Promise<void>;
export declare const getGridsInLayoutPane: (devToolsPage: DevToolsPage) => Promise<puppeteer.ElementHandle<Element>[]>;
export declare const waitForSomeGridsInLayoutPane: (minimumGridCount: number, devToolsPage: DevToolsPage) => Promise<void>;
export declare const waitForContentOfSelectedElementsNode: (expectedTextContent: string, devToolsPage: DevToolsPage) => Promise<void>;
export declare const waitForPartialContentOfSelectedElementsNode: (expectedPartialTextContent: string, devToolsPage: DevToolsPage) => Promise<void>;
/**
 * Gets the text content of the currently selected element.
 */
export declare const getContentOfSelectedNode: (devToolsPage: DevToolsPage) => Promise<string>;
export declare const waitForSelectedNodeChange: (initialValue: string, devToolsPage: DevToolsPage, asyncScope?: AsyncScope) => Promise<void>;
export declare const assertSelectedElementsNodeTextIncludes: (expectedTextContent: string, devtoolsPage: DevToolsPage) => Promise<void>;
export declare const waitForSelectedTreeElementSelectorWithTextcontent: (expectedTextContent: string, devToolsPage: DevToolsPage) => Promise<void>;
export declare const waitForSelectedTreeElementSelectorWhichIncludesText: (expectedTextContent: string, devToolsPage: DevToolsPage) => Promise<void>;
export declare const waitForChildrenOfSelectedElementNode: (devToolsPage: DevToolsPage, partialTexts?: string[]) => Promise<true>;
export declare const waitForAndClickTreeElementWithPartialText: (text: string, devToolsPage: DevToolsPage) => Promise<void>;
export declare const waitForElementWithPartialText: (text: string, devToolsPage: DevToolsPage) => Promise<puppeteer.ElementHandle<Element>>;
export declare const elementWithPartialText: (text: string, devToolsPage: DevToolsPage) => Promise<puppeteer.ElementHandle<Element> | null>;
export declare const clickTreeElementWithPartialText: (text: string, devToolsPage: DevToolsPage) => Promise<boolean>;
export declare const clickNthChildOfSelectedElementNode: (childIndex: number, devToolsPage: DevToolsPage) => Promise<void>;
export declare const focusElementsTree: (devToolsPage: DevToolsPage) => Promise<void>;
export declare const navigateToSidePane: (paneName: string, devToolsPage: DevToolsPage) => Promise<void>;
export declare const waitForElementsStyleSection: (expectedNodeText: string | null | undefined, devToolsPage: DevToolsPage) => Promise<void>;
export declare const waitForElementsDOMBreakpointsSection: (devToolsPage: DevToolsPage) => Promise<void>;
export declare function getDOMBreakpoints(devToolsPage: DevToolsPage): Promise<puppeteer.ElementHandle<Element> | null>;
export declare const isDOMBreakpointEnabled: (breakpoint: puppeteer.ElementHandle<Element>, devToolsPage: DevToolsPage) => Promise<boolean>;
export declare const setDOMBreakpointOnSelectedNode: (type: string, devToolsPage: DevToolsPage) => Promise<void>;
export declare const toggleDOMBreakpointCheckbox: (breakpoint: puppeteer.ElementHandle<Element>, wantChecked: boolean, devToolsPage: DevToolsPage) => Promise<void>;
export declare const waitForElementsComputedSection: (devToolsPage: DevToolsPage) => Promise<void>;
export declare const getContentOfComputedPane: (devToolsPage: DevToolsPage) => Promise<string>;
export declare const waitForComputedPaneChange: (initialValue: string, devToolsPage: DevToolsPage) => Promise<void>;
export declare const getAllPropertiesFromComputedPane: (devToolsPage: DevToolsPage) => Promise<{
    name: string;
    value: string;
}[]>;
export declare const getPropertyFromComputedPane: (name: string, devToolsPage: DevToolsPage) => Promise<puppeteer.ElementHandle<Element> | undefined>;
export declare const expandSelectedNodeRecursively: (devToolsPage: DevToolsPage) => Promise<void>;
export declare const findElementById: (id: string, devToolsPage: DevToolsPage) => Promise<void>;
export declare const showForceState: (specificStates: boolean | undefined, devToolsPage: DevToolsPage) => Promise<void>;
export declare const forcePseudoState: (pseudoState: string, specificStates: boolean | undefined, devToolsPage: DevToolsPage) => Promise<void>;
export declare const removePseudoState: (pseudoState: string, devToolsPage: DevToolsPage) => Promise<void>;
export declare const getComputedStylesForDomNode: (elementSelector: string, styleAttribute: keyof CSSStyleDeclaration, inspectedPage: InspectedPage) => Promise<string | number | (() => ArrayIterator<string>) | CSSRule | ((property: string) => string) | ((property: string) => string) | ((index: number) => string) | ((property: string) => string) | ((property: string, value: string | null, priority?: string) => void) | null>;
export declare const waitForNumberOfComputedProperties: (numberToWaitFor: number, devToolsPage: DevToolsPage) => Promise<true>;
export declare const getComputedPanel: (devToolsPage: DevToolsPage) => Promise<puppeteer.ElementHandle<Element>>;
export declare const filterComputedProperties: (filterString: string, devToolsPage: DevToolsPage) => Promise<void>;
export declare const toggleShowAllComputedProperties: (devToolsPage: DevToolsPage) => Promise<void>;
export declare const waitForDomNodeToBeVisible: (elementSelector: string, inspectedPage: InspectedPage) => Promise<void>;
export declare const waitForDomNodeToBeHidden: (elementSelector: string, inspectedPage: InspectedPage) => Promise<void>;
export declare const assertGutterDecorationForDomNodeExists: (devToolsPage: DevToolsPage) => Promise<void>;
export declare const getStyleRuleSelector: (selector: string) => string;
export declare const waitForExactStyleRule: (expectedSelector: string, devToolsPage: DevToolsPage) => Promise<void>;
export declare const waitForStyleRule: (expectedSelector: string, devToolsPage: DevToolsPage) => Promise<void>;
export declare const getComputedStyleProperties: (devToolsPage: DevToolsPage) => Promise<{
    name: string;
    value: string;
    trace: {
        value: string;
        selector: string;
        link: string;
    }[];
}[]>;
export declare const getDisplayedCSSDeclarations: (devtoolsPage: DevToolsPage) => Promise<string[]>;
export declare const getDisplayedStyleRulesCompact: (devToolsPage: DevToolsPage) => Promise<{
    selectorText: string;
    propertyNames: string[];
}[]>;
export declare const getDisplayedStyleRules: (devToolsPage: DevToolsPage) => Promise<{
    selectorText: string;
    propertyData: {
        propertyName: string;
        isOverLoaded: boolean | undefined;
        isInherited: boolean | undefined;
    }[];
}[]>;
/**
 * @param propertiesSection The element containing this properties section.
 * @returns an array with an entry for each property in the section. Each entry has:
 * - propertyName: The name of this property.
 * - isOverloaded: True if this is an inherited properties section, and this property is overloaded by a child node.
 *                 The property will be shown as crossed out in the style pane.
 * - isInherited: True if this is an inherited properties section, and this property is a non-inherited CSS property.
 *                The property will be shown as grayed-out in the style pane.
 */
export declare const getDisplayedCSSPropertyData: (propertiesSection: puppeteer.ElementHandle<Element>, devToolsPage: DevToolsPage) => Promise<{
    propertyName: string;
    isOverLoaded: boolean | undefined;
    isInherited: boolean | undefined;
}[]>;
export declare const getDisplayedCSSPropertyNames: (propertiesSection: puppeteer.ElementHandle<Element>, devToolsPage: DevToolsPage) => Promise<string[]>;
export declare const getStyleRule: (selector: string, devToolsPage: DevToolsPage) => Promise<puppeteer.ElementHandle<Element>>;
export declare const getStyleRuleWithSourcePosition: (styleSelector: string, sourcePosition: string | undefined, devToolsPage: DevToolsPage) => Promise<puppeteer.ElementHandle<Element>>;
export declare const getColorSwatch: (parent: puppeteer.ElementHandle<Element> | undefined, index: number, devToolsPage: DevToolsPage) => Promise<puppeteer.ElementHandle<Element>>;
export declare const getColorSwatchColor: (parent: puppeteer.ElementHandle<Element>, index: number, devToolsPage: DevToolsPage) => Promise<string>;
export declare const shiftClickColorSwatch: (parent: puppeteer.ElementHandle<Element>, index: number, parentVe: string, devToolsPage: DevToolsPage) => Promise<void>;
export declare const getStyleSectionSubtitles: (devToolsPage: DevToolsPage) => Promise<string[]>;
export declare const getCSSPropertyInRule: (ruleSection: puppeteer.ElementHandle<Element> | string, name: string, sourcePosition: string | undefined, devToolsPage: DevToolsPage) => Promise<puppeteer.ElementHandle<HTMLElement> | undefined>;
export declare const focusCSSPropertyValue: (selector: string, propertyName: string, devToolsPage: DevToolsPage) => Promise<void>;
/**
 * Edit a CSS property value in a given rule
 * @param selector The selector of the rule to be updated. Note that because of the way the Styles populates, it is
 * important to provide a rule selector that is unique here, to avoid editing a property in the wrong rule.
 * @param propertyName The name of the property to be found and edited. If several properties have the same names, the
 * first one is edited.
 * @param newValue The new value to be used.
 */
export declare function editCSSProperty(selector: string, propertyName: string, newValue: string, devToolsPage: DevToolsPage): Promise<void>;
/** Edit a media or container query rule text for the given styles section **/
export declare function editQueryRuleText(queryStylesSections: puppeteer.ElementHandle<Element>, newQueryText: string, devToolsPage: DevToolsPage, willDelete?: boolean): Promise<void>;
export declare function waitForCSSPropertyValue(selector: string, name: string, value: string, sourcePosition: string | undefined, devToolsPage: DevToolsPage): Promise<puppeteer.ElementHandle<Element>>;
export declare function waitForPropertyToHighlight(ruleSelector: string, propertyName: string, devToolsPage: DevToolsPage): Promise<void>;
export declare const getBreadcrumbsTextContent: ({ expectedNodeCount }: {
    expectedNodeCount: number;
}, devToolsPage: DevToolsPage) => Promise<string[]>;
export declare const getSelectedBreadcrumbTextContent: (devToolsPage: DevToolsPage) => Promise<string>;
export declare const navigateToElementsTab: (devtoolsPage: DevToolsPage, options?: {
    expectExistingPanel: boolean;
}) => Promise<void>;
export declare const clickOnFirstLinkInStylesPanel: (devToolsPage: DevToolsPage) => Promise<void>;
export declare const toggleClassesPane: (devToolsPage: DevToolsPage) => Promise<void>;
export declare const typeInClassesPaneInput: (text: string, devToolsPage: DevToolsPage, commitWith?: puppeteer.KeyInput, waitForNodeChange?: boolean) => Promise<void>;
export declare const toggleClassesPaneCheckbox: (checkboxLabel: string, devToolsPage: DevToolsPage) => Promise<void>;
export declare const uncheckStylesPaneCheckbox: (checkboxLabel: string, devToolsPage: DevToolsPage) => Promise<void>;
export declare const assertSelectedNodeClasses: (expectedClasses: string[], devToolsPage: DevToolsPage) => Promise<void>;
export declare const toggleAccessibilityPane: (devToolsPage: DevToolsPage) => Promise<void>;
export declare const toggleAccessibilityTree: (devToolsPage: DevToolsPage) => Promise<void>;
export declare const getPropertiesWithHints: (devToolsPage: DevToolsPage) => Promise<string[]>;
export declare const summonAndWaitForSearchBox: (devToolsPage: DevToolsPage) => Promise<void>;
export declare const assertSearchResultMatchesText: (text: string, devToolsPage: DevToolsPage) => Promise<void>;
export declare const goToResourceAndWaitForStyleSection: (path: string, devToolsPage: DevToolsPage, inspectedPage: InspectedPage) => Promise<void>;
export declare const checkStyleAttributes: (expectedStyles: string[], devToolsPage: DevToolsPage) => Promise<boolean>;
export declare const TEXT_PROMPT_GHOST_TEXT_SELECTOR = ".auto-complete-text";
export declare const GHOST_VALUE_PREDICTION_SELECTOR = ".ghost-value-prediction";
export declare const GHOST_ROW_SELECTOR = ".ghost-row";
declare global {
    interface Window {
        __lastAidaRequest: string;
    }
}
export declare const mockAidaCodeComplete: (devToolsPage: DevToolsPage, response: Host.AidaClient.CompletionResponse) => Promise<void>;
export declare const getLastAidaRequest: (devToolsPage: DevToolsPage) => Promise<string>;
export declare const getGhostTextInCurrentTextPrompt: (devToolsPage: DevToolsPage) => Promise<string | null>;
export declare const getGhostText: (devToolsPage: DevToolsPage) => Promise<string | null>;
export declare const getMultilineGhostElements: (devToolsPage: DevToolsPage) => Promise<string[]>;
