import type { Envelope, LinkedBundle, Metadata, UnloadRequest, Supervisor as _Supervisor } from '@devvit/protos';
import { Empty } from '@devvit/protos/types/google/protobuf/empty.js';
import type { Namespace } from '@devvit/shared-types/Namespace.js';
import type { EnvelopeDispatcher } from '../envelope/dispatcher/EnvelopeDispatcher.js';
import type { EnvelopeFilter } from '../envelope/filter/EnvelopeFilter.js';
export declare function DefaultFilters(namespace: Readonly<Namespace>): EnvelopeFilter;
/**
 * The Supervisor is the first worker created that manages creating additional Actors
 */
export declare class SupervisorActor implements _Supervisor {
    #private;
    constructor(dispatcher: EnvelopeDispatcher, filter?: EnvelopeFilter);
    Filter(envelope: Envelope, _metadata: Metadata | undefined): Promise<Envelope>;
    /**
     * Communicates with the Runtime to unpack a LinkedBundle and spawn Workers
     */
    Load(bundle: LinkedBundle, metadata: Metadata | undefined): Promise<Empty>;
    /**
     * Unregisters an actor. This also unloads all actors that have it as a
     * downstream dependency and actors that it depends on if they would be
     * otherwise un-used.
     */
    Unload(request: UnloadRequest, metadata: Metadata | undefined): Promise<Empty>;
}
//# sourceMappingURL=SupervisorActor.d.ts.map