/**
 * 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.
 *
 * @flow strict
 */

// This file contains constants to be used within Error messages.
// The URLs within will eventually be replaced by links to the documentation website for Stylex.

declare export const illegalArgumentLength: (
  fn: string,
  argLength: number,
) => string;
declare export const nonStaticValue: (fn: string) => string;
declare export const nonStyleObject: (fn: string) => string;
declare export const nonExportNamedDeclaration: (fn: string) => string;
declare export const unboundCallValue: (fn: string) => string;
declare export const cannotGenerateHash: (fn: string) => string;
declare export const invalidDefineVarsFunctionValue: () => string;
declare export const cyclicDefineVarsReference: (cycle: string) => string;
declare export const unknownDefineVarsReference: (
  key: string,
  dependency: string,
) => string;

declare export const DUPLICATE_CONDITIONAL: 'The same pseudo selector or at-rule cannot be used more than once.';
declare export const ESCAPED_STYLEX_VALUE: 'Escaping a create() value is not allowed.';
declare export const ILLEGAL_NESTED_PSEUDO: "Pseudo objects can't be nested more than one level deep.";
declare export const ILLEGAL_PROP_VALUE: 'A style value can only contain an array, string or number.';
declare export const ILLEGAL_PROP_ARRAY_VALUE: 'A style array value can only contain strings or numbers.';
declare export const ILLEGAL_NAMESPACE_VALUE: 'A StyleX namespace must be an object.';
declare export const INVALID_PSEUDO: 'Invalid pseudo selector, not on the whitelist.';
declare export const INVALID_PSEUDO_OR_AT_RULE: 'Invalid pseudo or at-rule.';
declare export const INVALID_MEDIA_QUERY_SYNTAX: 'Invalid media query syntax.';
declare export const LINT_UNCLOSED_FUNCTION: 'Rule contains an unclosed function';
declare export const LOCAL_ONLY: 'The return value of create() should not be exported.';
declare export const NON_OBJECT_KEYFRAME: 'Every frame within a keyframes() call must be an object.';
declare export const NON_CONTIGUOUS_VARS: 'All variables passed to firstThatWorks() must be contiguous.';
declare export const NO_OBJECT_SPREADS: 'Object spreads are not allowed in create() calls.';
declare export const ONLY_NAMED_PARAMETERS_IN_DYNAMIC_STYLE_FUNCTIONS: 'Only named parameters are allowed in Dynamic Style functions. Destructuring, spreading or default values are not allowed.';
declare export const ONLY_TOP_LEVEL: 'create() is only allowed at the root of a program.';
declare export const UNKNOWN_PROP_KEY: 'Unknown property key';

declare export const POSITION_TRY_INVALID_PROPERTY: 'Invalid property in `positionTry()` call. It may only contain, positionAnchor, positionArea, inset properties (top, left, insetInline etc.), margin properties, size properties (height, inlineSize, etc.), and self-alignment properties (alignSelf, justifySelf, placeSelf)';

declare export const VIEW_TRANSITION_CLASS_INVALID_PROPERTY: 'Invalid property in `viewTransitionClass()` call. It may only contain group, imagePair, old, and new properties';
