import EventEmitter from 'node:events';
import Auth from './service/Auth.js';
import Schema from './schema/Schema.js';
import Service from './service/Service.js';
import type { Definitions, Resources, Middleware, Dispatch, Action, Response, Authenticator } from './types.js';
import type { AuthDef } from './service/types.js';
export declare const setUpAuth: (authenticators?: Record<string, Authenticator>) => (def: AuthDef) => Auth;
export default class Instance extends EventEmitter {
    #private;
    id?: string;
    services: Record<string, Service>;
    schemas: Map<string, Schema>;
    identType?: string;
    queueService?: string;
    dispatch: Dispatch;
    dispatchScheduled: (from: Date, to: Date) => Promise<Action[]>;
    constructor(defs: Definitions, resources: Resources, middlewareForDispatch?: Middleware[], middlewareForService?: Middleware[]);
    get dispatchedCount(): number;
    listen(): Promise<Response>;
    stopListening(): Promise<Response>;
    close(): Promise<Response>;
}
