/**
 * @file Handle clean up check services.
 * @copyright Piggly Lab 2024
 */
export declare class StartupService {
    /**
     * Handlers to check.
     *
     * @type {Map<string, () => Promise<boolean>>}
     * @protected
     * @memberof StartupService
     * @since 5.3.0
     * @author Caique Araujo <caique@piggly.com.br>
     */
    protected handlers: Map<string, () => Promise<boolean>>;
    /**
     * Constructor.
     *
     * @public
     * @constructor
     * @memberof StartupService
     * @since 5.3.0
     * @author Caique Araujo <caique@piggly.com.br>
     */
    constructor();
    /**
     * Register a new handler.
     *
     * @param {string} name
     * @param {() => Promise<boolean>} handler
     * @public
     * @memberof StartupService
     * @since 5.3.0
     * @author Caique Araujo <caique@piggly.com.br>
     */
    register(name: string, handler: () => Promise<boolean>): void;
    /**
     * Check all handlers. It will not throw any error.
     *
     * @returns {Promise<{
     * 	success: boolean;
     * 	services: Record<string, boolean>;
     * }>}
     * @public
     * @memberof StartupService
     * @since 5.3.0
     * @author Caique Araujo <caique@piggly.com.br>
     */
    softStart(): Promise<{
        services: Record<string, boolean>;
        success: boolean;
    }>;
    /**
     * Check all handlers.
     *
     * @returns {Promise<{
     * 	success: boolean;
     * 	services: Record<string, boolean>;
     * }>}
     * @public
     * @memberof StartupService
     * @since 5.3.0
     * @throws {Error} If any handler fails.
     * @author Caique Araujo <caique@piggly.com.br>
     */
    start(): Promise<{
        services: Record<string, boolean>;
        success: boolean;
    }>;
    /**
     * Register application service.
     *
     * @param {StartupService} service
     * @public
     * @static
     * @memberof StartupService
     * @since 5.3.0
     * @author Caique Araujo <caique@piggly.com.br>
     */
    static register(service: StartupService): void;
    /**
     * Resolve application service.
     *
     * @returns {StartupService}
     * @throws {Error} If service is not registered.
     * @public
     * @static
     * @memberof StartupService
     * @since 5.3.0
     * @author Caique Araujo <caique@piggly.com.br>
     */
    static resolve(): StartupService;
}
