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_LOAD_QUERY_REQUEST_DEDUPING: boolean;
    ENABLE_DO_NOT_WRAP_LIVE_QUERY: boolean;
    ENABLE_NOTIFY_SUBSCRIPTION: boolean;
    BATCH_ASYNC_MODULE_UPDATES_FN: null | undefined | ((arg: () => 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_LOOSE_SUBSCRIPTION_ATTRIBUTION: boolean;
    ENABLE_OPERATION_TRACKER_OPTIMISTIC_UPDATES: boolean;
    ENABLE_FIELD_ERROR_HANDLING: boolean;
    ENABLE_FIELD_ERROR_HANDLING_THROW_BY_DEFAULT: boolean;
    ENABLE_FIELD_ERROR_HANDLING_CATCH_DIRECTIVE: boolean;
    PROCESS_OPTIMISTIC_UPDATE_BEFORE_SUBSCRIPTION: boolean;
    MARK_RESOLVER_VALUES_AS_CLEAN_AFTER_FRAGMENT_REREAD: boolean;
}

export const RelayFeatureFlags: FeatureFlags;
