import type { InitializedTeskitMap, TestkitMap, TestkitShape, UniDriver } from 'ricos-types/testkit'; import type { TOOLBARS } from 'wix-rich-content-editor-common'; export type ToolbarTestkit = { exists: () => Promise; waitForElement: () => Promise; getButtonsAmount: () => Promise; scrollToElementByIndex: (index: number) => Promise; }; export type ToolbarTestkitMap = { [PluginName: string]: TestkitShape['toolbars']; }; export type ToolbarCreationFunctionKeys = keyof NonNullable; type ToolbarPluginConfigCreator, PluginName extends keyof IntializedPluginMap, ToolbarConfig extends IntializedPluginMap[PluginName]['toolbars'], CreationFunction extends ToolbarCreationFunctionKeys> = ToolbarConfig extends NonNullable ? ToolbarConfig[CreationFunction] extends NonNullable[CreationFunction]> ? ToolbarConfig[CreationFunction] : never : never; export type ToolbarPluginActionsCreatorMap = { [PluginName in keyof PluginMap]: ToolbarPluginConfigCreator, PluginName, InitializedTeskitMap[PluginName]['toolbars'], CreationFunction>; }; type ToolbarPluginConfig, PluginName extends keyof IntializedPluginMap, ToolbarConfig extends IntializedPluginMap[PluginName]['toolbars'], CreationFunction extends ToolbarCreationFunctionKeys> = ToolbarConfig extends NonNullable ? ToolbarConfig[CreationFunction] extends NonNullable[CreationFunction]> ? ReturnType : never : never; /** * @example * https://www.typescriptlang.org/play?#code/KYDwDg9gTgLgBDAnmYcAqwDOMDWBLGAZQAsBDFOAXjgG8AoOOAYwgDsZh2AuOCAIwBWwJjADcDBBAgAbPqSiYA-D3qNGTKMFIcAggBM9AIQCuMGGzRTZ8pTwAUAc2AxDpTMHsBKKgD44AUWlgAFtOGG9KP34hEXE1Zk1tYAwQF1NzVksZOQVlOEdnV3cvXwCg0PYIqMFhMQkAX3FGujpQSFgEZFQi4ABVVjwAESg8ADdgKAAeND9qApc3D3yqspCwlbRxVvBoeCQKDGx8GGm4UA5WPUx0LFwCEnJgWfynBeLl0sC1ytLN7fa9l0bkcCABZchUWhwADaOGAiB42BGrAcAF0eIc7idMccHig-M1-rtOgcrDkcQRIaoziA8NhMCVInAAApQCDBOnASZ8KxaVg+OJwADupAIADFoF8KjBGX5WezOZMpWEBRJXiYzGxMDpghBjNwPkz5Rz3JNWMZgnwJqrGJgNDJpJZlexDIgAJKXUD2PCekA8c2WiYrY2K0YQPB6VWEtrE-aoLLWKAUmDgsBUiTQ5nSYwOH0AOVIoURMGRaIxt1xZBQ0IA5OZsjYa6imls4+gyfIAMKJGB4Nhi-UiPusADS8Ou1DhiAgADM4Hm2HnjNJpKQ+EFphX7lXgLX64nME3VS02wmclmcz7O2wZ3gHJML7nWKmaRcrsCsamADQs7NPguhK+nDvlOs6-pez7kD+Z5djed5AZc1wAErOMYUCZF0D5-j6qaZthrAAcAqI+HuHYKE2P7dlovb9oONGsAh74wVAVHaMOA6sEObBjogmDPMx16sLeDiMdcC4Ecuq7rlyAlwQ4PgSIwijtg2LFydCrH0RxXGsKionzouklrhuinxAZEkrsZMlbkQO6kaph7ERpPbsXRw6oqZjAKWZcDKShMBoRhKDTGRgnCc51GuZx9HEZ5cD+sA4xQKZCVJVsRIdKeZGPj6Og6ZgkwSDlkFpucwHXMm34SJpUU6fpAkubR0XDjxmB0M81J4RBhFwD6cCgXOxWpuiKmJsVYV3lhEHfuB-6FsAP7+YFaCYUN5BdXNoROXWZGOZRjWsNp9EKYSdAsKw2C9cEpBOMmeJLMmkzUudFwyrwNSxBI+45AytCmRo1HAPoRjpBYu2yqN5I2YKzT1M8dgrHYz1sK9Kj1F+X3g398QA0kwMahkzG-QjpTUvEmgBeh2M+TSdIwMTwZsiawAAHSaJgMjjHYJbGMAngYzTwqijAEpQM6b0k0aTOcmzWCc8ASP1HAbirNK-NxYw6qgxdOp6gaktytL7iyxz0hcwArOrgt2myK5OuUYSuh6eheoahsKsb7PywjAtmc08Tow0GP1J4WznZdM4o4QeAAF7JDZ93liCJzI+wYQ8NEtSCt9NgZx9dRw5CBv5KnqO0IHjA5woaPB6HLTh-APLSHod07knWJPRIL3p+9MQF-DiOlz3NCByHYdansNkvtQ1J4NdTg8HPN3x8n92+5H7DR3HPAb0Qscr1ia8SE3eg8CfrePMHrZApiPr3mtpWpOVH7HKmHUSGA+G-cxxV5fRBUPx-DWXGugDAEzBg5GsUZr4HFuHfAATJCW+KJJhxjAhwZOb9x4XXgJHCAHAoBUiVirZBDh4FbDwQQlmn8IKYBZkvJwdAAD0TDBbxAAHqKBaJQiY1Cv4s13lvYAzDWFsMYJwugPCoB8NoSzE+IixHiMUEAA * Scroll down to the bottom of the page to see the result of types. */ export type ToolbarPluginActions = { [PluginName in keyof PluginMap]: ToolbarPluginConfig, PluginName, InitializedTeskitMap[PluginName]['toolbars'], CreationFunction>; }; export type AddButtonToolbarPluginActions = OmitNeverFields>>; type CreateAddButtonToolbarPluginActions> = { [PluginName in keyof AddButtonPlugins]: AddButtonPlugins[PluginName] extends object ? Toolbar[] extends AddButtonPlugins[PluginName]['toolbarsToAddIn'] ? Omit : never : never; }; export type OmitNeverFields = { [K in keyof T as T[K] extends never ? never : K]: T[K]; }; export {}; //# sourceMappingURL=toolbar-testkit-types.d.ts.map