import { Logger } from "@decaf-ts/logging";
import { FabricCAServerCommand } from "../constants/fabric-ca-server";
import { CAConfig, CommadCSRConfig, CommandIntermediateCAConfig, CommandLDAPConfig, CorsConfig, DBConfig, IdemixConfig, ServerTLSConfig } from "../interfaces/fabric/fabric-ca-server-config";
import { FabricLogLevel } from "../constants/fabric-general";
export declare class FabricCAServerCommandBuilder {
    private log;
    private binName;
    private command;
    private args;
    constructor(logger?: Logger);
    /**
     * @description Sets the command for the Fabric CA Server.
     * @summary Configures the primary action for the Fabric CA Server, such as starting the server or generating certificates.
     * @param {FabricCAServerCommand} [command] - The command to be executed by the Fabric CA Server.
     * @return {this} The current instance of the builder for method chaining.
     */
    setCommand(command?: FabricCAServerCommand): this;
    /**
     * @description Sets the port for the Fabric CA Server.
     * @summary Configures the network port on which the Fabric CA Server will listen for incoming connections.
     * @param {number} [port] - The port number for the Fabric CA Server to listen on.
     * @return {this} The current instance of the builder for method chaining.
     */
    setPort(port?: number): this;
    /**
     * @description Enables or disables debug mode for the Fabric CA Server.
     * @summary Configures whether the Fabric CA Server should run in debug mode, providing more detailed logging and output.
     * @param {boolean} [enable] - Whether to enable debug mode.
     * @return {this} The current instance of the builder for method chaining.
     */
    enableDebug(enable?: boolean): this;
    setServerTLS(tlsConfig?: ServerTLSConfig): this;
    setCA(config: CAConfig): this;
    /**
     * @description Sets the address for the Fabric CA Server.
     * @summary Configures the network address on which the Fabric CA Server will listen for incoming connections.
     * @param {string} [address] - The network address for the Fabric CA Server to listen on.
     * @return {this} The current instance of the builder for method chaining.
     */
    setAddress(address?: string): this;
    /**
     * @description Sets the bootstrap admin user for the Fabric CA Server.
     * @summary Configures the initial admin user with full privileges for the Fabric CA Server.
     * @param {string} [bootUser] - The bootstrap admin user in the format "username:password".
     * @return {this} The current instance of the builder for method chaining.
     */
    setBootstrapAdmin(bootUser?: string): this;
    /**
     * @description Sets the number of CAs to run on the Fabric CA Server.
     * @summary Configures the Fabric CA Server to run multiple CA instances.
     * @param {number} [count] - The number of CA instances to run.
     * @return {this} The current instance of the builder for method chaining.
     */
    setCACount(count?: number): this;
    /**
     * @description Sets the configuration files for multiple CAs.
     * @summary Configures the Fabric CA Server with multiple CA configurations using separate files.
     * @param {string[]} [files] - An array of paths to CA configuration files.
     * @return {this} The current instance of the builder for method chaining.
     */
    setCAFiles(files?: string[]): this;
    setCors(config?: CorsConfig): this;
    setCrlExpiry(crlExpiry?: string): this;
    /**
     * @description Sets the size limit for the Certificate Revocation List (CRL).
     * @summary Configures the maximum number of revoked certificates that can be included in a single CRL.
     * @param {number} [limit] - The maximum number of revoked certificates in the CRL.
     * @return {this} The current instance of the builder for method chaining.
     */
    setCRLSizeLimit(limit?: number): this;
    setCSR(csr?: CommadCSRConfig): this;
    setHelp(show?: boolean): this;
    setHome(home?: string): this;
    setDatabase(cfg?: DBConfig): this;
    setIdemix(idemix?: IdemixConfig): this;
    setIntermediate(int: CommandIntermediateCAConfig): this;
    setLDAP(ldap?: CommandLDAPConfig): this;
    setLogLevel(level: FabricLogLevel): this;
    setMaxEnrollments(maxEnrollments?: number): this;
    setAllowAffiliationsRemove(allow?: boolean): this;
    setAllowIdentitiesRemove(allow?: boolean): this;
    setPasswordAttempts(attempts?: number): this;
    build(): string;
    getCommand(): string;
    getBinary(): string;
    getArgs(): string[];
    execute(): Promise<void>;
}
