import type { SchemaTypes } from '@datocms/cma-client'; import { FullConnectParameters } from './connect'; import { Ctx } from './ctx/base'; import { ImposedSizePluginFrameCtx, SelfResizingPluginFrameCtx } from './ctx/pluginFrame'; type Field = SchemaTypes.Field; type ItemType = SchemaTypes.ItemType; export type AwaitedReturnType any> = Awaited>; type ModeForPluginFrameCtx = T extends ImposedSizePluginFrameCtx ? Mode : never; export type MaybePromise = T | Promise; export declare function pick(obj: T, keys: readonly K[]): Pick; export declare function omit(obj: T, keys: readonly K[]): Omit; export declare function fromOneFieldIntoMultipleAndResultsById(fn: ((field: Field, ctx: Ctx & { itemType: ItemType; }) => Result) | undefined): (fields: Field[], ctx: Ctx) => Record | undefined; export type Methods = { getSettings: () => Promise; }; export type Properties = { mode: Mode; }; type OnChangeListenerFn = (newSettings: any) => void; export type ExtractRenderHooks> = { [K in keyof T as K extends `render${string}` ? K : never]: T[K]; }; export type Bootstrapper> = { (connectConfiguration: Partial>, methods: Methods, initialProperties: Properties): undefined | OnChangeListenerFn; mode: H; }; export declare function containedRenderModeBootstrapper>(mode: ModeForPluginFrameCtx, callConfigurationMethod: (connectConfiguration: Partial>, ctx: Ctx) => void): Bootstrapper; export declare function fullScreenRenderModeBootstrapper>(mode: ModeForPluginFrameCtx, callConfigurationMethod: (connectConfiguration: Partial>, ctx: Ctx) => void): Bootstrapper; export {};