import { ClientSDK, RequestOptions } from "../lib/sdks.js";
import { CreateFlagRequest, CreateFlagResponseBody } from "../models/createflagop.js";
import { CreateFlagSegmentRequest, CreateFlagSegmentResponseBody } from "../models/createflagsegmentop.js";
import { CreateSDKKeyRequest } from "../models/createsdkkeyop.js";
import { DeleteFlagRequest } from "../models/deleteflagop.js";
import { DeleteFlagSegmentRequest } from "../models/deleteflagsegmentop.js";
import { DeleteSDKKeyRequest } from "../models/deletesdkkeyop.js";
import { Flag } from "../models/flag.js";
import { FlagsSDKKeyWithSecrets } from "../models/flagssdkkeywithsecrets.js";
import { GetDeploymentFeatureFlagsRequest, GetDeploymentFeatureFlagsResponseBody } from "../models/getdeploymentfeatureflagsop.js";
import { GetFlagRequest } from "../models/getflagop.js";
import { GetFlagSegmentRequest } from "../models/getflagsegmentop.js";
import { GetFlagSettingsRequest, GetFlagSettingsResponseBody } from "../models/getflagsettingsop.js";
import { GetSDKKeysRequest, GetSDKKeysResponseBody } from "../models/getsdkkeysop.js";
import { ListFlagSegmentsRequest, ListFlagSegmentsResponseBody } from "../models/listflagsegmentsop.js";
import { ListFlagsRequest, ListFlagsResponseBody } from "../models/listflagsop.js";
import { ListFlagsV2Request, ListFlagsV2ResponseBody } from "../models/listflagsv2op.js";
import { ListFlagVersionsRequest, ListFlagVersionsResponseBody } from "../models/listflagversionsop.js";
import { ListTeamFlagSettingsRequest, ListTeamFlagSettingsResponseBody } from "../models/listteamflagsettingsop.js";
import { ListTeamFlagsRequest, ListTeamFlagsResponseBody } from "../models/listteamflagsop.js";
import { ListTeamFlagsV2Request, ListTeamFlagsV2ResponseBody } from "../models/listteamflagsv2op.js";
import { Segment } from "../models/segment.js";
import { UpdateFlagRequest, UpdateFlagResponseBody } from "../models/updateflagop.js";
import { UpdateFlagSegmentRequest } from "../models/updateflagsegmentop.js";
import { UpdateFlagSettingsRequest, UpdateFlagSettingsResponse } from "../models/updateflagsettingsop.js";
export declare class FeatureFlags extends ClientSDK {
    /**
     * List flags
     *
     * @remarks
     * Retrieve feature flags for a project. Returns an opaque cursor for pagination.
     */
    listFlagsV2(request: ListFlagsV2Request, options?: RequestOptions): Promise<ListFlagsV2ResponseBody>;
    /**
     * List flags
     *
     * @remarks
     * Retrieve feature flags for a project. The list can be filtered by state and supports pagination.
     */
    listFlags(request: ListFlagsRequest, options?: RequestOptions): Promise<ListFlagsResponseBody>;
    /**
     * Create a flag
     *
     * @remarks
     * Create a new feature flag for a project. The flag must have a unique slug within the project and specify its kind (boolean, string, number, or json).
     */
    createFlag(request: CreateFlagRequest, options?: RequestOptions): Promise<CreateFlagResponseBody>;
    /**
     * Get a flag
     *
     * @remarks
     * Retrieve a specific feature flag by its ID or slug.
     */
    getFlag(request: GetFlagRequest, options?: RequestOptions): Promise<Flag | undefined>;
    /**
     * Update a flag
     *
     * @remarks
     * Update an existing feature flag. This endpoint supports partial updates, allowing you to modify specific properties like variants, environments, or state without providing the full flag configuration.
     */
    updateFlag(request: UpdateFlagRequest, options?: RequestOptions): Promise<UpdateFlagResponseBody | undefined>;
    /**
     * Delete a flag
     *
     * @remarks
     * Permanently delete a feature flag from the project. This action cannot be undone. Consider archiving the flag instead if you may need it in the future.
     */
    deleteFlag(request: DeleteFlagRequest, options?: RequestOptions): Promise<void>;
    /**
     * List flag versions
     *
     * @remarks
     * Lists flag versions for a given flag.
     */
    listFlagVersions(request: ListFlagVersionsRequest, options?: RequestOptions): Promise<ListFlagVersionsResponseBody | undefined>;
    /**
     * Get project flag settings
     *
     * @remarks
     * Retrieve feature flag settings for a project.
     */
    getFlagSettings(request: GetFlagSettingsRequest, options?: RequestOptions): Promise<GetFlagSettingsResponseBody>;
    /**
     * Update project flag settings
     *
     * @remarks
     * Update feature flag settings for a project.
     */
    updateFlagSettings(request: UpdateFlagSettingsRequest, options?: RequestOptions): Promise<UpdateFlagSettingsResponse>;
    /**
     * List team project flag settings
     *
     * @remarks
     * Retrieve feature flag settings for projects in a team.
     */
    listTeamFlagSettings(request: ListTeamFlagSettingsRequest, options?: RequestOptions): Promise<ListTeamFlagSettingsResponseBody>;
    /**
     * List all flags for a team
     *
     * @remarks
     * Retrieve all feature flags for a team across all projects. Returns an opaque cursor for pagination.
     */
    listTeamFlagsV2(request: ListTeamFlagsV2Request, options?: RequestOptions): Promise<ListTeamFlagsV2ResponseBody>;
    /**
     * List all flags for a team
     *
     * @remarks
     * Retrieve all feature flags for a team across all projects. The list can be filtered by state and supports pagination.
     */
    listTeamFlags(request: ListTeamFlagsRequest, options?: RequestOptions): Promise<ListTeamFlagsResponseBody>;
    /**
     * Create a segment
     *
     * @remarks
     * Create a new feature flag segment.
     */
    createFlagSegment(request: CreateFlagSegmentRequest, options?: RequestOptions): Promise<CreateFlagSegmentResponseBody>;
    /**
     * List segments
     *
     * @remarks
     * List all feature flag segments for a project.
     */
    listFlagSegments(request: ListFlagSegmentsRequest, options?: RequestOptions): Promise<ListFlagSegmentsResponseBody>;
    /**
     * Get a segment
     *
     * @remarks
     * Retrieve a feature flag segment by ID or slug.
     */
    getFlagSegment(request: GetFlagSegmentRequest, options?: RequestOptions): Promise<Segment>;
    /**
     * Delete a segment
     *
     * @remarks
     * Delete a feature flag segment.
     */
    deleteFlagSegment(request: DeleteFlagSegmentRequest, options?: RequestOptions): Promise<void>;
    /**
     * Update a segment
     *
     * @remarks
     * Update an existing feature flag segment.
     */
    updateFlagSegment(request: UpdateFlagSegmentRequest, options?: RequestOptions): Promise<Segment>;
    /**
     * Retrieve the feature flags of a deployment
     *
     * @remarks
     * Retrieve the feature flags of a deployment.
     */
    getDeploymentFeatureFlags(request: GetDeploymentFeatureFlagsRequest, options?: RequestOptions): Promise<GetDeploymentFeatureFlagsResponseBody>;
    /**
     * Get all SDK keys
     *
     * @remarks
     * Gets all SDK keys for a project.
     */
    getSDKKeys(request: GetSDKKeysRequest, options?: RequestOptions): Promise<GetSDKKeysResponseBody>;
    /**
     * Create an SDK key
     *
     * @remarks
     * Creates an SDK key.
     */
    createSDKKey(request: CreateSDKKeyRequest, options?: RequestOptions): Promise<FlagsSDKKeyWithSecrets>;
    /**
     * Delete an SDK key
     *
     * @remarks
     * Deletes an SDK key.
     */
    deleteSDKKey(request: DeleteSDKKeyRequest, options?: RequestOptions): Promise<void>;
}
//# sourceMappingURL=featureflags.d.ts.map