/** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ import { JsonValue } from '../json'; export interface WorkspaceDefinition { readonly extensions: Record; readonly projects: ProjectDefinitionCollection; } export interface ProjectDefinition { readonly extensions: Record; readonly targets: TargetDefinitionCollection; root: string; prefix?: string; sourceRoot?: string; } export interface TargetDefinition { options?: Record; configurations?: Record | undefined>; defaultConfiguration?: string; builder: string; } export declare type DefinitionCollectionListener = (name: string, action: 'add' | 'remove' | 'replace', newValue: V | undefined, oldValue: V | undefined, collection: DefinitionCollection) => void; declare class DefinitionCollection implements ReadonlyMap { private _listener?; private _map; constructor(initial?: Record, _listener?: DefinitionCollectionListener | undefined); delete(key: string): boolean; set(key: string, value: V): this; forEach(callbackfn: (value: V, key: string, map: DefinitionCollection) => void, thisArg?: T): void; get(key: string): V | undefined; has(key: string): boolean; get size(): number; [Symbol.iterator](): IterableIterator<[string, V]>; entries(): IterableIterator<[string, V]>; keys(): IterableIterator; values(): IterableIterator; } export declare class ProjectDefinitionCollection extends DefinitionCollection { constructor(initial?: Record, listener?: DefinitionCollectionListener); add(definition: { name: string; root: string; sourceRoot?: string; prefix?: string; targets?: Record; [key: string]: unknown; }): ProjectDefinition; set(name: string, value: ProjectDefinition): this; private _validateName; } export declare class TargetDefinitionCollection extends DefinitionCollection { constructor(initial?: Record, listener?: DefinitionCollectionListener); add(definition: { name: string; } & TargetDefinition): TargetDefinition; set(name: string, value: TargetDefinition): this; private _validateName; } export {};