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; }