/** * @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/index'; import { Readwrite } from '../../utils/index'; import { JobDescription, JobHandler, JobName } from './api'; /** * A JobDispatcher can be used to dispatch between multiple jobs. */ export interface JobDispatcher extends JobHandler { /** * Set the default job if all conditionals failed. * @param name The default name if all conditions are false. */ setDefaultJob(name: JobName | null | JobHandler): void; /** * Add a conditional job that will be selected if the input fits a predicate. * @param predicate * @param name */ addConditionalJob(predicate: (args: A) => boolean, name: string): void; } /** * OnReady a dispatcher that can dispatch to a sub job, depending on conditions. * @param options */ export declare function createDispatcher(options?: Partial>): JobDispatcher;