declare module '@agility/web-studio-sdk/index' {
  export {};

}
declare module '@agility/web-studio-sdk/util/applyContentItem' {
  /**
   * Apply a content item to a component
   */
  export const applyContentItem: (contentItem: any) => void;

}
declare module '@agility/web-studio-sdk/util/commentUtils' {
  export function getDeepestElementAtCoordinates(element: Element, x: number, y: number): Element | null;
  /**
   * This will get the index of the unique selector based on the selector and the x y
   * in cases where the unique selector isn't unique, we need to find the index of occurrence
   */
  export function getSelectorIndex(sel: string, x: number, y: number): number;
  /**
   * Generates a unique CSS selector for a given DOM element.
   *
   * @param {Element} element - The DOM element for which to generate the selector.
   * @returns {string} - A unique CSS selector that can be used to select the element.
   *
   */
  export function getUniqueSelector(element: Element): string;
  export function getRelativePercentage(deepestEle: Element, x: number, y: number): {
      percentageX: number;
      percentageY: number;
  } | null;
  export function getAbsolutePositionFromPercentage(deepestEle: Element, percentageX: number | undefined, percentageY: number | undefined): {
      x: number;
      y: number;
  } | null;

}
declare module '@agility/web-studio-sdk/util/frameEvents' {
  import { IUpdatedCommentDictionary } from "@agility/web-studio-sdk/util/initializePreview";
  import { TDecoratorMap } from "@agility/web-studio-sdk/util/generateDecoratorMap";
  export interface IReadyEventArgs {
      windowWidth?: number;
      windowScrollableHeight?: number;
      windowHeight?: number;
      url?: string;
      hasPageDecorators?: boolean;
      hasComponentDecorators?: boolean;
      hasFieldDecorators?: boolean;
  }
  export interface INavigationEventArgs {
      url: string;
      pageID: number | null;
      contentID: number | null;
      windowScrollableHeight?: number;
      windowHeight?: number;
  }
  export interface IEditComponentEventArgs {
      contentID: number | null;
      pageID: number | null;
  }
  export interface IEditFieldEventArgs {
      fieldName: string;
      contentID: number | null;
      pageID: number | null;
  }
  export interface IScrollEventArgs {
      scrollX: number;
      scrollY: number;
      windowScrollableHeight: number;
      windowWidth: number;
      windowHeight: number;
  }
  export interface ICommentDictionaryUpdatedEventArgs {
      updatedCommentDictionary: IUpdatedCommentDictionary;
  }
  export interface IWindowResizeEventArgs {
      windowWidth: number;
      windowHeight: number;
  }
  export interface IRefreshEventArgs {
      url: string;
  }
  export interface ISetCommentCoordsEventArgs {
      percentageOffsetX?: number;
      percentageOffsetY?: number;
      uniqueSelector: string;
      elementIndex: number;
      isDragEndEvent?: boolean;
      threadId?: string;
      calcFallbackX?: number;
      calcFallbackY?: number;
      originX?: number;
      originY?: number;
  }
  export interface IDecoratorMapUpdatedEventArgs {
      decoratorMap: TDecoratorMap;
  }
  export type TFrameEventArgs = IReadyEventArgs | INavigationEventArgs | IEditComponentEventArgs | IEditFieldEventArgs | IScrollEventArgs | IWindowResizeEventArgs | IRefreshEventArgs | ISetCommentCoordsEventArgs | ICommentDictionaryUpdatedEventArgs | IDecoratorMapUpdatedEventArgs | null;
  export const dispatchReadyEvent: ({ windowWidth, windowHeight, url, windowScrollableHeight, hasComponentDecorators, hasFieldDecorators, hasPageDecorators, }: IReadyEventArgs) => void;
  export const dispatchNavigationEvent: (args: INavigationEventArgs) => void;
  export const dispatchEditComponentEvent: ({ contentID, pageID, }: IEditComponentEventArgs) => void;
  export const dispatchEditFieldEvent: ({ fieldName, contentID, pageID, }: IEditFieldEventArgs) => void;
  export const dispatchScrollEvent: ({ scrollY, scrollX, windowWidth, windowHeight, }: IScrollEventArgs) => void;
  export const dispatchWindowResizeEvent: ({ windowWidth, windowHeight, }: IWindowResizeEventArgs) => void;
  export const dispatchSetCommentCoordsEvent: ({ percentageOffsetX, percentageOffsetY, uniqueSelector, elementIndex, isDragEndEvent, threadId, calcFallbackX, calcFallbackY, originX, originY }: ISetCommentCoordsEventArgs) => void;
  export const dispatchCommentDictionaryUpdatedEvent: ({ updatedCommentDictionary, }: ICommentDictionaryUpdatedEventArgs) => void;
  export const dispatchRefreshEvent: ({ url }: IRefreshEventArgs) => void;
  export const dispatchDecoratorMapUpdatedEvent: ({ decoratorMap, }: IDecoratorMapUpdatedEventArgs) => void;

}
declare module '@agility/web-studio-sdk/util/generateDecoratorMap' {
  export type TDecoratorMap = Map<number, string[]>;
  export const generateDecoratorMap: () => TDecoratorMap | undefined;

}
declare module '@agility/web-studio-sdk/util/getGuid' {
  export const getGuid: (file: string) => string | null;

}
declare module '@agility/web-studio-sdk/util/index' {
  import { initCSSAndPreviewPanel } from "@agility/web-studio-sdk/util/initCSSAndPreviewPanel";
  import { initComponents } from "@agility/web-studio-sdk/util/initComponents";
  import { applyContentItem } from "@agility/web-studio-sdk/util/applyContentItem";
  import { initializePreview } from "@agility/web-studio-sdk/util/initializePreview";
  import { invokeFrameEvent } from "@agility/web-studio-sdk/util/invokeFrameEvent";
  import { getGuid } from "@agility/web-studio-sdk/util/getGuid";
  export { initCSSAndPreviewPanel, initComponents, applyContentItem, initializePreview, invokeFrameEvent, getGuid, };

}
declare module '@agility/web-studio-sdk/util/initCSSAndPreviewPanel' {
  export const initCSSAndPreviewPanel: () => void;

}
declare module '@agility/web-studio-sdk/util/initComponents' {
  /**
   * Initialize the components on the site
   */
  export const initComponents: () => void;

}
declare module '@agility/web-studio-sdk/util/initializePreview' {
  interface initializePreviewArgs {
      setIsInitialized: (state: boolean) => void;
  }
  export interface IUpdatedCommentDictionary {
      [threadID: string]: {
          uniqueSelector?: string;
          percentageOffsetX?: number;
          percentageOffsetY?: number;
          x?: number;
          y?: number;
          elementIndex?: number;
      };
  }
  export const initializePreview: ({ setIsInitialized, }: initializePreviewArgs) => void;
  export {};

}
declare module '@agility/web-studio-sdk/util/invokeFrameEvent' {
  import { TFrameEventArgs } from "@agility/web-studio-sdk/util/frameEvents";
  export type TFrameEvents = "ready" | "navigation" | "edit-component" | "edit-field" | "sdk-scroll" | "sdk-window-resize" | "sdk-refresh" | "set-comment-coords" | "comment-dictionary-updated" | "decorator-map-updated" | "set-comment-coords-on-drag-end";
  export const invokeFrameEvent: (messageType: TFrameEvents, arg: TFrameEventArgs) => void;

}
declare module '@agility/web-studio-sdk' {
  import main = require('@agility/web-studio-sdk/src/index');
  export = main;
}