export type NetworkReplicationMode = "all-clients" | "owner-only" | "all-except-owner" | "none";
export interface NetworkReplicationFixtureOptions {
    readonly seed?: number;
    readonly tickRate?: number;
    readonly latencyMs?: number;
    readonly jitterMs?: number;
    readonly interestRadius?: number;
    readonly clientPosition?: readonly [number, number, number];
}
export interface NetworkInputFrame {
    readonly sequence: number;
    readonly timestampMs: number;
    readonly forward: boolean;
    readonly right: boolean;
    readonly fire: boolean;
}
export interface NetworkEntityState {
    readonly id: string;
    readonly ownerId: string;
    readonly replicationMode: NetworkReplicationMode;
    readonly position: readonly [number, number, number];
    readonly velocity: readonly [number, number, number];
    readonly health: number;
    readonly ammo: number;
    readonly animation: string;
    readonly timestampMs: number;
    readonly lastProcessedInput: number;
}
export interface NetworkPredictionSummary {
    readonly inputCount: number;
    readonly predictedSequence: number;
    readonly acknowledgedSequence: number;
    readonly pendingInputs: number;
    readonly predictionError: number;
    readonly smoothCorrection: readonly [number, number, number];
    readonly replayedPosition: readonly [number, number, number];
    readonly reconciliationAccepted: boolean;
}
export interface NetworkDeltaSummary {
    readonly changedFields: readonly string[];
    readonly removedFields: readonly string[];
    readonly fullSnapshotBytes: number;
    readonly deltaBytes: number;
    readonly compressionRatio: number;
    readonly reconstructedMatches: boolean;
    readonly bytesSaved: number;
}
export interface NetworkInterestSummary {
    readonly playerId: string;
    readonly radius: number;
    readonly added: readonly string[];
    readonly removed: readonly string[];
    readonly unchanged: readonly string[];
    readonly relevant: readonly string[];
    readonly culled: readonly string[];
    readonly gridCellCount: number;
}
export interface NetworkInterpolationSummary {
    readonly sampleTimestampMs: number;
    readonly beforeTimestampMs: number;
    readonly afterTimestampMs: number;
    readonly interpolatedPosition: readonly [number, number, number];
    readonly extrapolatedPosition: readonly [number, number, number];
}
export interface NetworkReplicationFixture {
    readonly source: "origin-master-net-prediction-replication-adapted";
    readonly claimBoundary: string;
    readonly blockedClaims: readonly string[];
    readonly tickRate: number;
    readonly latencyMs: number;
    readonly jitterMs: number;
    readonly inputFrames: readonly NetworkInputFrame[];
    readonly clientPredicted: NetworkEntityState;
    readonly serverAuthoritative: NetworkEntityState;
    readonly prediction: NetworkPredictionSummary;
    readonly delta: NetworkDeltaSummary;
    readonly interest: NetworkInterestSummary;
    readonly interpolation: NetworkInterpolationSummary;
    readonly hash: string;
}
export declare function sampleNetworkReplicationFixture(options?: NetworkReplicationFixtureOptions): NetworkReplicationFixture;
//# sourceMappingURL=NetworkReplicationFixtures.d.ts.map