declare type Argument0 = T extends ((x: infer X, ...z: any[]) => any) ? X : never; declare type Argument1 = T extends ((a: any, x: infer X, ...z: any[]) => any) ? X : never; declare type Argument2 = T extends ((a: any, b: any, x: infer X, ...z: any[]) => any) ? X : never; export declare namespace description { interface commands { dispatch(cmd: '$init', ...args: []): ReturnType; dispatch(cmd: 'asset', ...args: [Argument1, Argument2]): ReturnType; dispatch(cmd: 'compile', ...args: [Argument0, Argument2]): ReturnType; dispatch(cmd: 'remove-asset', ...args: [Argument1, Argument2]): ReturnType; dispatch(cmd: 'route', ...args: [Argument0, Argument1, Argument2]): ReturnType; } } export {};