interface ISambaManager {
    addShare(share: SambaShareConfig): neverthrow.ResultAsync<SambaShareConfig, ParsingError | ProcessError>;
    editGlobal(globalConfig: SambaGlobalConfig): neverthrow.ResultAsync<SambaGlobalConfig, ParsingError | ProcessError>;
    editShare(share: SambaShareConfig): neverthrow.ResultAsync<SambaShareConfig, ParsingError | ProcessError>;
    exportConfig(): neverthrow.ResultAsync<string, ProcessError>;
    getGlobalConfig(): neverthrow.ResultAsync<SambaGlobalConfig, ParsingError | ProcessError>;
    getShare(shareName: string): neverthrow.ResultAsync<SambaShareConfig, ParsingError | ProcessError>;
    getShares(): neverthrow.ResultAsync<SambaShareConfig[], ParsingError | ProcessError>;
    importConfig(config: string): neverthrow.ResultAsync<ISambaManager, ProcessError>;
    listShareNames(): neverthrow.ResultAsync<string[], ParsingError | ProcessError>;
    parseConfig(config: string): neverthrow.Result<SambaConfig, ParsingError>;
    parseGlobalConfig(globalConfig: string): neverthrow.Result<SambaGlobalConfig, ParsingError>;
    parseShareConfig(shareConfig: string): neverthrow.Result<SambaShareConfig, ParsingError>;
    recommendedGlobalDefaults(): neverthrow.Result<SambaGlobalConfig, ParsingError>;
    recommendedShareDefaults(): neverthrow.Result<SambaShareConfig, ParsingError>;
    removeShare(share: SambaShareConfig): neverthrow.ResultAsync<SambaShareConfig, ParsingError | ProcessError>;
    renameShare(oldName: string, newName: string): neverthrow.ResultAsync<SambaShareConfig, ParsingError | ProcessError>;
    setUserPassword(user: string, passwd: string): neverthrow.ResultAsync<void, ProcessError>;
    unparseConfig(config: SambaConfig): neverthrow.Result<string, ParsingError>;
}

Implemented by

Methods