import { LaunchDarklyCore } from "../core.js";
import { RequestOptions } from "../lib/sdks.js";
import * as components from "../models/components/index.js";
import { ConnectionError, InvalidRequestError, RequestAbortedError, RequestTimeoutError, UnexpectedClientError } from "../models/errors/httpclienterrors.js";
import * as errors from "../models/errors/index.js";
import { LaunchDarklyError } from "../models/errors/launchdarklyerror.js";
import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
import * as operations from "../models/operations/index.js";
import { APIPromise } from "../types/async.js";
import { Result } from "../types/fp.js";
/**
 * Create a feature flag
 *
 * @remarks
 * Create a feature flag with the given name, key, and variations.
 *
 * <details>
 * <summary>Click to expand instructions for <strong>creating a migration flag</strong></summary>
 *
 * ### Creating a migration flag
 *
 * When you create a migration flag, the variations are pre-determined based on the number of stages in the migration.
 *
 * To create a migration flag, omit the `variations` and `defaults` information. Instead, provide a `purpose` of `migration`, and `migrationSettings`. If you create a migration flag with six stages, `contextKind` is required. Otherwise, it should be omitted.
 *
 * Here's an example:
 *
 * ```json
 * {
 *   "key": "flag-key-123",
 *   "purpose": "migration",
 *   "migrationSettings": {
 *     "stageCount": 6,
 *     "contextKind": "account"
 *   }
 * }
 * ```
 *
 * To learn more, read [Migration Flags](https://launchdarkly.com/docs/home/flags/migration).
 *
 * </details>
 */
export declare function featureFlagsCreate(client: LaunchDarklyCore, request: operations.PostFeatureFlagRequest, options?: RequestOptions): APIPromise<Result<components.FeatureFlag, errors.InvalidRequestErrorRep | errors.UnauthorizedErrorRep | errors.StatusConflictErrorRep | errors.RateLimitedErrorRep | LaunchDarklyError | ResponseValidationError | ConnectionError | RequestAbortedError | RequestTimeoutError | InvalidRequestError | UnexpectedClientError | SDKValidationError>>;
//# sourceMappingURL=featureFlagsCreate.d.ts.map