// in cypress/support/index.d.ts // load type definitions that come with Cypress module /// import type { EditorConfig, OutputData } from './../../../types/index'; import type EditorJS from '../../../types/index' declare global { namespace Cypress { interface Chainable { /** * Custom command to select DOM element by data-cy attribute. * @param editorConfig - config to pass to the editor * @example cy.createEditor({}) */ createEditor(editorConfig: EditorConfig): Chainable /** * Paste command to dispatch paste event * * @usage * cy.get('div').paste({'text/plain': 'Text', 'text/html': 'Text'}) * * @param data - map with MIME type as a key and data as value */ paste(data: {[type: string]: string}): Chainable /** * Copy command to dispatch copy event on subject * * @usage * cy.get('div').copy().then(data => {}) */ copy(): Chainable<{ [type: string]: any }>; /** * Cut command to dispatch cut event on subject * * @usage * cy.get('div').cut().then(data => {}) */ cut(): Chainable<{ [type: string]: any }>; /** * Calls EditorJS API render method * * @param data — data to render */ render(data: OutputData): Chainable; } interface ApplicationWindow { EditorJS: typeof EditorJS } } }