/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { type MonitoringContext } from "@fluidframework/telemetry-utils/internal";
import type { IContainerRuntimeMetadata } from "../summary/index.js";
import { type IGCRuntimeOptions, type IGarbageCollectorConfigs } from "./gcDefinitions.js";
/**
 * Generates configurations for the Garbage Collector that it uses to determine what to run and how.
 * @param mc - The monitoring context for reading configs from the config provider.
 * @param createParams - The creation params:
 * gcOptions - The garbage collector runtime options.
 * metadata - The container runtime's createParams.metadata.
 * existing - Whether the container is new or an existing one.
 * @returns The garbage collector configurations.
 */
export declare function generateGCConfigs(mc: MonitoringContext, createParams: {
    gcOptions: IGCRuntimeOptions;
    metadata: IContainerRuntimeMetadata | undefined;
    existing: boolean;
    isSummarizerClient: boolean;
}): IGarbageCollectorConfigs;
/**
 * Tombstone timeout is the time after which unreferenced content is guaranteed not to be revived (re-referenced).
 * Tombstone timeout = session expiry timeout + snapshot cache expiry timeout + one day buffer.
 *
 * The snapshot cache expiry timeout cannot be known precisely but the upper bound is 5 days.
 * The buffer is added to account for any clock skew or other edge cases.
 * We use server timestamps throughout so the skew should be minimal but make it 1 day to be safe.
 *
 * If there is no Session Expiry timeout, GC can never guarantee an object won't be revived, so return undefined.
 */
export declare function computeTombstoneTimeout(sessionExpiryTimeoutMs: number | undefined): number | undefined;
//# sourceMappingURL=gcConfigs.d.ts.map