import { CommandsData } from "./commands-data";
import { CommandModel } from ".";
import { InjectionToken } from "@angular/core";

export declare const COMMANDS_FILTER_TOKEN: InjectionToken<string>;

/**
 * Provider logic for filtering operations based on some criteria.
 *
 * @export
 * @interface CommandsFilter
 */
export interface CommandsFilter {
    /**
     * Filters given operations.
     *
     * @param {Operation[]} operations The operations that will be filtered,
     * @param {OperationsData} data The context for the operations.
     * @returns {Operation[]} Filtered operations.
     * @memberof CommandsFilter
     */
    filter(operations: CommandModel[], data: CommandsData): CommandModel[];
}

