import type { FastifyInstance, RawServerBase } from 'fastify';
import { FastifyModifierCallable, FastifyAppliable } from '../types';
/**
 * @file The Fastify modifier.
 * @copyright Piggly Lab 2023
 */
export declare class FastifyModifiers<Server extends RawServerBase, AppEnvironment> implements FastifyAppliable<Server, AppEnvironment> {
    /**
     * The callables
     *
     * @type {Array<FastifyModifierCallable>}
     * @memberof FastifyModifier
     * @since 1.0.0
     * @author Caique Araujo <caique@piggly.com.br>
     */
    protected _callables: Array<FastifyModifierCallable<Server, AppEnvironment>>;
    /**
     * Create a new Fastify modifier.
     *
     * @param {Array<FastifyModifierCallable>} args The callables.
     * @public
     * @constructor
     * @memberof FastifyModifier
     * @since 1.0.0
     * @author Caique Araujo <caique@piggly.com.br>
     */
    constructor(...args: Array<FastifyModifierCallable<Server, AppEnvironment>>);
    /**
     * Apply the modifier.
     *
     * @param app The Fastify application.
     * @param env The environment.
     * @returns {Promise<void>}
     * @public
     * @memberof FastifyModifier
     * @since 1.0.0
     * @author Caique Araujo <caique@piggly.com.br>
     */
    apply(app: FastifyInstance<Server>, env: AppEnvironment): Promise<void>;
    /**
     * Get the size of callables.
     *
     * @returns {number}
     * @public
     * @memberof FastifyModifier
     * @since 1.0.0
     * @author Caique Araujo <caique@piggly.com.br>
     */
    size(): number;
}
