/**
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

import { Disposable } from './RelayRuntimeTypes';

export interface FeatureFlags {
    ENABLE_VARIABLE_CONNECTION_KEY: boolean;
    ENABLE_RELAY_RESOLVERS: boolean;
    ENABLE_GETFRAGMENTIDENTIFIER_OPTIMIZATION: boolean;
    ENABLE_FRIENDLY_QUERY_NAME_GQL_URL: boolean;
    ENABLE_DO_NOT_WRAP_LIVE_QUERY: boolean;
    ENABLE_NOTIFY_SUBSCRIPTION: boolean;
    BATCH_ASYNC_MODULE_UPDATES_FN: null | undefined | ((callback: () => void) => Disposable);
    ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT: boolean;
    MAX_DATA_ID_LENGTH: number | null | undefined;
    STRING_INTERN_LEVEL: number;
    LOG_MISSING_RECORDS_IN_PROD: boolean;
    ENABLE_RELAY_OPERATION_TRACKER_SUSPENSE: boolean;
    ENABLE_UI_CONTEXT_ON_RELAY_LOGGER: boolean;
    ENABLE_NONCOMPLIANT_ERROR_HANDLING_ON_LISTS: boolean;
    ENABLE_LOOSE_SUBSCRIPTION_ATTRIBUTION: boolean;
    ENABLE_OPERATION_TRACKER_OPTIMISTIC_UPDATES: boolean;
    PROCESS_OPTIMISTIC_UPDATE_BEFORE_SUBSCRIPTION: boolean;
    MARK_RESOLVER_VALUES_AS_CLEAN_AFTER_FRAGMENT_REREAD: boolean;
    ENABLE_CYLE_DETECTION_IN_VARIABLES: boolean;
    ENABLE_ACTIVITY_COMPATIBILITY: boolean;
    ENABLE_READ_TIME_RESOLVER_STORAGE_KEY_PREFIX: boolean;
    ENABLE_USE_PAGINATION_IS_LOADING_FIX: boolean;
    ENABLE_STORE_ID_COLLISION_LOGGING: boolean;
    DISALLOW_NESTED_UPDATES: boolean;
    ENABLE_TYPENAME_PREFIXED_DATA_ID: boolean;
    CHECK_ALL_FRAGMENTS_FOR_MISSING_CLIENT_EDGES: boolean;
    ENABLE_READER_FRAGMENTS_LOGGING: boolean;
}

export const RelayFeatureFlags: FeatureFlags;
