import type { Part } from './part'; export type Theme = { /** * Return a new theme that uses an theme part. The part will replace any * existing part of the same feature * * @param part a part, or a no-arg function that returns a part */ withPart(part: Part | (() => Part)): Theme; /** * Return a new theme removes any existing part with a feature. * * @param feature the name of the part to remove, e.g. 'checkboxStyle' */ withoutPart(feature: string): Theme; /** * Return a new theme with different default values for the specified * params. * * @param defaults an object containing params e.g. {spacing: 10} */ withParams(defaults: Partial, mode?: string): Theme; };