/** * The fleet default: the limit and the route for a service with no rule of * its own. One module so the number rule and the user-unit sentences change * in one place. * * Engine semantics this states (config `pipelines/run/receive/rate/ * rate-object-cap.js`): in each reset window, per statement per container per * node, the first `rateReceiverBaselineCount` lines pass; then lines pass while * the statement's bytes stay under the cap; above it an ERROR, CRITICAL or * FATAL line passes while the statement is under its keep count, and the rest * take the action. */ export type FleetDefaultAction = 'tier_down' | 'offload'; /** Headroom on the baseline when the caller names none. */ export declare const FLEET_DEFAULT_HEADROOM = 2; /** * The always-pass sample in lines a day per statement per node: the lines * that pass in every reset window, times the windows in a day (5 x 360 = * 1,800 at the engine defaults). People read rules in lines a day, never in * the window's length. */ export declare function alwaysPassLinesPerDay(alwaysPass?: number): number; /** * The number rule, isolated: the baseline times the headroom. The baseline is * the largest statement the plan keeps, in whatever unit the caller carries * (bytes per window per node from a capture, lines a day from a metrics * series); the result is in the same unit. Returns 0 when there is no * baseline, so a caller writes no default. */ export declare function fleetDefaultLimit(baseline: number, headroom?: number): number; /** * A kept statement in one container, as the capture measured it. The cell is * per node: the statement's bytes per reset window over the whole stream, * divided by the Receivers that enforce the container's cap. */ export interface KeptCell { container: string; /** Bytes per reset window of the container's largest kept statement, whole stream. */ keptMaxBytesPerWindow: number; /** Receivers enforcing the container's cap: its nodes for a DaemonSet, 1 for a sidecar. */ instances: number; /** The statement's name, for the plan. */ statement?: string; /** Average bytes per line of that statement. */ avgBytesPerLine?: number; } export interface FleetDefaultNumber { /** The engine value: bytes per reset window per node (`rateReceiverAbsoluteCap`). */ capBytesPerWindowPerNode: number; /** The baseline the cap multiplies, in the same unit. */ baselineBytesPerWindowPerNode: number; headroom: number; /** The cell the baseline came from. */ baseline: KeptCell; } /** The baseline: the largest kept per-window cell of the capture, per node. */ export declare function fleetDefaultBaseline(cells: KeptCell[]): (KeptCell & { perNode: number; }) | undefined; /** * The fleet default's number: the baseline cell times the headroom, in bytes * per reset window per node. Undefined without a kept cell, so a caller * writes no default and says why. */ export declare function fleetDefaultNumber(cells: KeptCell[], headroom?: number): FleetDefaultNumber | undefined; /** * Share of ERROR and CRITICAL lines above the limit that stay in Standard. * Ruled 2026-10-13: 0.5 when the excess is offloaded (S3 has no monitors), * 0 when it goes to Flex. A parameter, because the containment demo may move it. */ export declare function defaultErrorFloor(action: FleetDefaultAction): number; /** Where the lines above the limit go, as a noun phrase. */ export declare function fleetDestination(action: FleetDefaultAction): string; /** The always-pass sample, in user units. */ export declare function alwaysPassSentence(alwaysPass?: number): string; /** * What a Datadog log monitor on error lines sees under the fleet default. * The fleet default holds every statement in a service with no rule, error * statements included, so this is stated with every fleet-default offer. */ export declare function errorMonitorVisibility(action: FleetDefaultAction, errorFloor?: number, alwaysPass?: number, /** Error lines over the limit that pass per statement per node per window (engine 1.1.146); replaces the floor. */ keepCount?: number): string;