import { BlazeRouter } from '../router/BlazeRouter';
import type { EventActionHandler } from '../types/event';
import type { CreateServiceOption, Middleware, ServiceConstructorOption } from '../types/service';
import { BlazeServiceAction } from './action';
import { BlazeServiceEvent } from './event';
import { BlazeServiceRest } from './rest';
export declare class BlazeService {
    readonly servicePath: string;
    readonly serviceName: string;
    readonly restPath: string;
    readonly mainRouter: BlazeRouter;
    readonly actions: BlazeServiceAction[];
    readonly events: BlazeServiceEvent[];
    readonly rests: BlazeServiceRest[];
    readonly handlers: EventActionHandler[];
    readonly middlewares: Middleware[];
    router: BlazeRouter | null;
    private readonly ctx;
    private readonly service;
    private isStarted;
    constructor(options: ServiceConstructorOption);
    private loadRest;
    private loadServiceActions;
    private loadServiceEvents;
    private assignRestRoute;
    onStopped(): void;
    onRestarted(): void;
    onStarted(): void;
    static create(options: CreateServiceOption): Promise<BlazeService>;
}
