import { IClientConfiguration , INackContent , NackErrorType } from "@fluidframework/protocol-definitions" ; export interface IDeliServerConfiguration { enableNackMessages : boolean ; enableOpHashing : boolean ; clientTimeout : number ; activityTimeout : number ; noOpConsolidationTimeout : number ; checkpointHeuristics : IDeliCheckpointHeuristicsServerConfiguration ; opEvent : IDeliOpEventServerConfiguration ; summaryNackMessages : IDeliSummaryNackMessagesServerConfiguration ; } export interface IDeliCheckpointHeuristicsServerConfiguration { enable : boolean ; idleTime : number ; maxTime : number ; maxMessages : number ; } export interface IDeliOpEventServerConfiguration { enable : boolean ; idleTime : number | undefined ; maxTime : number | undefined ; maxOps : number | undefined ; } export interface IScribeServerConfiguration { generateServiceSummary : boolean ; enablePendingCheckpointMessages : boolean ; clearCacheAfterServiceSummary : boolean ; ignoreStorageException : boolean ; } export interface IDeliSummaryNackMessagesServerConfiguration { enable : boolean ; checkOnStartup : boolean ; maxOps : number ; nackContent : INackContent ; } export interface IDocumentLambdaServerConfiguration { partitionActivityTimeout : number ; partitionActivityCheckInterval : number ; } export interface IMoiraServerConfiguration { enable : boolean ; endpoint : string ; } /**
 * Key value store of service configuration properties
 */ export interface IServiceConfiguration extends IClientConfiguration , IServerConfiguration { [ key ] : any ; } /**
 * Key value store of service configuration properties for the server
 */ export interface IServerConfiguration { deli : IDeliServerConfiguration ; scribe : IScribeServerConfiguration ; moira : IMoiraServerConfiguration ; documentLambda : IDocumentLambdaServerConfiguration ; enableTraces : boolean ; enableLumberjack : boolean ; } export const DefaultServiceConfiguration = { blockSize : 64436 , maxMessageSize : 16 * 1024 , enableTraces : true , enableLumberjack : true , summary : { idleTime : 5000 , maxOps : 1000 , maxTime : 5000 * 12 , maxAckWaitTime : 600000 } , deli : { enableNackMessages : true , enableOpHashing : true , clientTimeout : 5 * 60 * 1000 , activityTimeout : 30 * 1000 , noOpConsolidationTimeout : 250 , checkpointHeuristics : { enable : false , idleTime : 10 * 1000 , maxTime : 1 * 60 * 1000 , maxMessages : 500 } , opEvent : { enable : false , idleTime : 15 * 1000 , maxTime : 5 * 60 * 1000 , maxOps : 1500 } , summaryNackMessages : { enable : false , checkOnStartup : false , maxOps : 5000 , nackContent : { code : 429 , type : NackErrorType . ThrottlingError , retryAfter : 10 , message : "Submit a summary before inserting additional operations" } } } , scribe : { generateServiceSummary : true , enablePendingCheckpointMessages : true , clearCacheAfterServiceSummary : false , ignoreStorageException : false } , moira : { enable : false , endpoint : "" } , documentLambda : { partitionActivityTimeout : 10 * 60 * 1000 , partitionActivityCheckInterval : 60 * 1000 } } ;