import type { OptionsConfig } from "@ganache/options"; import type { Executor } from "@ganache/utils"; import type { Connector } from "./connector"; export type CliSettings = { host: string; port: number; }; type RemovePropertiesOfType = { [K in keyof A as A[K] extends B ? never | null : K]: A[K]; }; type Clean = RemovePropertiesOfType; export type FlavorOptions | never, ServerOptions extends OptionsConfig | never, CliOptions extends OptionsConfig | never> = Clean<{ provider?: ProviderOptions; server?: ServerOptions; cli?: CliOptions; }>; /** * A type to represent any flavor. Used internally to generalize flavors. * @internal */ export type AnyFlavor = Flavor, { provider?: OptionsConfig; server?: OptionsConfig; cli?: OptionsConfig; }>; export type Flavor, O extends FlavorOptions, OptionsConfig, OptionsConfig> = FlavorOptions> = { flavor: F; connect: (providerOptions: Parameters[0], executor: Executor) => C; ready: (config: { provider: C["provider"]; options: { server: CliSettings; }; }) => void | Promise; options: O; }; export {}; //# sourceMappingURL=flavor.d.ts.map