import { a as Steps, S as Step } from './provider-4150a447.js';
import { Observable } from 'rxjs';
import { S as ScopeConstructor, l as Scopes$1, g as ScopeUpdate, a as Attributes, f as ScopeIdent, h as Scope$1 } from './scopes-eb5984a4.js';

declare class Scopes<Context, Kinds extends {
    [key: string]: ScopeConstructor<Context, Kinds>;
}> extends Scopes$1<Context, Kinds, Scope<Context, Kinds>> {
    private steps;
    constructor(scopesObs: Observable<ScopeUpdate>, donesObs: Observable<string[]>, ctx: Context, kinds: Kinds, attributes: Attributes, steps: Steps);
    protected create(scopeClass: ScopeConstructor<Context, Kinds>, scope: ScopeIdent): Scope<Context, Kinds>;
}
declare class Scope<Context, Kinds extends {
    [key: string]: ScopeConstructor<Context, Kinds>;
}> extends Scope$1<Context, Kinds> {
    readonly scopes: Scopes<Context, Kinds>;
    private steps;
    constructor(ctx: Context, scope: ScopeIdent, scopes: Scopes<Context, Kinds>, attributes: Attributes, steps: Steps);
    scopeByKey(key: string): Scope<Context, Kinds> | undefined;
    protected ticker(id: string): Step | undefined;
    protected tickerByKey(key: string): Step | undefined;
}

export { Scope as S, Scopes as a };
