import { Injector, Type } from '@angular/core'; import { O } from 'ts-toolbelt'; import { Action, ActionContributorCallback, ActionContributorCallbacks, ActionData, ActionList, Actions, ActionsFactory, ReadonlyActionData } from './actions'; export declare class ToolbarActionList extends ActionList | ToolbarComponent> { } export declare class ToolbarActions extends Actions> { protected _ctor: Type>; } export declare class ToolbarActionsFactory extends ActionsFactory> { protected _ctor: Type>; } export declare class ToolbarAction extends Action { readonly text: string; readonly icon: string; readonly btnClass?: string; constructor(options: ToolbarActionOptions); static create(options: ToolbarActionOptions): ToolbarAction; static createMany(arrayOfOptions: ToolbarActionOptions[]): ToolbarAction[]; } export declare class ToolbarComponent extends Action { readonly component: Type; constructor(options: ToolbarComponentOptions); static create(options: ToolbarComponentOptions): ToolbarComponent; static createMany(arrayOfOptions: ToolbarComponentOptions[]): ToolbarComponent[]; } export declare type ToolbarActionOptions = O.Optional>, 'permission' | 'visible' | 'icon' | 'btnClass'>; export declare type ToolbarComponentOptions = O.Optional>, 'permission' | 'visible' | 'action'>; export declare type ToolbarActionDefault = ToolbarAction | ToolbarComponent; export declare type ToolbarActionDefaults = Record>>; export declare type ToolbarActionContributorCallback = ActionContributorCallback>; export declare type ToolbarActionContributorCallbacks = ActionContributorCallbacks>; export declare type InferredData = ActionData>; export declare type InferredRecord = L extends ActionList ? R : never; export interface HasCreateInjectorPipe { getData: () => ReadonlyActionData; injector: Injector; getInjected: InferredData>['getInjected']; }