import { Scope } from './Scope';
import { App } from './App';
import { Enum } from '../types/Enum';
import { Text } from '../types/Text';
import { List } from '../types/List';
import { IdNamePlain } from '../types/IdName';
export declare class UseCase extends Enum {
    readonly app: App;
    readonly scopes: List<Scope>;
    constructor(app: App, name: string, id?: Text, scopes?: List<Scope>);
    static byScopes<U extends UseCase>(...s: Scope[]): List<U>;
    with(...s: Scope[]): this;
    for(item: string | IdNamePlain): UseCase;
}
