import * as z from "zod/v4";
import { OpenEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
export type CreateAuthKeysCodeGlobals = {
    /**
     * The app identifier should be your app's URL and is used as the primary identifier for rankings.
     *
     * @remarks
     * This is used to track API usage per application.
     */
    httpReferer?: string | undefined;
    /**
     * The app display name allows you to customize how your app appears in OpenRouter's dashboard.
     *
     * @remarks
     */
    appTitle?: string | undefined;
    /**
     * Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
     *
     * @remarks
     */
    appCategories?: string | undefined;
};
/**
 * The method used to generate the code challenge
 */
export declare const CreateAuthKeysCodeCodeChallengeMethod: {
    readonly S256: "S256";
    readonly Plain: "plain";
};
/**
 * The method used to generate the code challenge
 */
export type CreateAuthKeysCodeCodeChallengeMethod = OpenEnum<typeof CreateAuthKeysCodeCodeChallengeMethod>;
/**
 * Optional credit limit reset interval. When set, the credit limit resets on this interval.
 */
export declare const UsageLimitType: {
    readonly Daily: "daily";
    readonly Weekly: "weekly";
    readonly Monthly: "monthly";
};
/**
 * Optional credit limit reset interval. When set, the credit limit resets on this interval.
 */
export type UsageLimitType = OpenEnum<typeof UsageLimitType>;
export type CreateAuthKeysCodeRequestBody = {
    /**
     * The callback URL to redirect to after authorization. Supports https URLs and localhost/127.0.0.1 URLs on any port for local CLI tools.
     */
    callbackUrl: string;
    /**
     * PKCE code challenge for enhanced security
     */
    codeChallenge?: string | undefined;
    /**
     * The method used to generate the code challenge
     */
    codeChallengeMethod?: CreateAuthKeysCodeCodeChallengeMethod | undefined;
    /**
     * Optional expiration time for the API key to be created
     */
    expiresAt?: Date | null | undefined;
    /**
     * Optional custom label for the API key. Defaults to the app name if not provided.
     */
    keyLabel?: string | undefined;
    /**
     * Credit limit for the API key to be created
     */
    limit?: number | undefined;
    /**
     * Optional credit limit reset interval. When set, the credit limit resets on this interval.
     */
    usageLimitType?: UsageLimitType | undefined;
    /**
     * Optional workspace ID to associate the API key with
     */
    workspaceId?: string | undefined;
};
export type CreateAuthKeysCodeRequest = {
    /**
     * The app identifier should be your app's URL and is used as the primary identifier for rankings.
     *
     * @remarks
     * This is used to track API usage per application.
     */
    httpReferer?: string | undefined;
    /**
     * The app display name allows you to customize how your app appears in OpenRouter's dashboard.
     *
     * @remarks
     */
    appTitle?: string | undefined;
    /**
     * Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
     *
     * @remarks
     */
    appCategories?: string | undefined;
    requestBody: CreateAuthKeysCodeRequestBody;
};
/**
 * Auth code data
 */
export type CreateAuthKeysCodeData = {
    /**
     * The application ID associated with this auth code
     */
    appId: number;
    /**
     * ISO 8601 timestamp of when the auth code was created
     */
    createdAt: string;
    /**
     * The authorization code ID to use in the exchange request
     */
    id: string;
};
/**
 * Successfully created authorization code
 */
export type CreateAuthKeysCodeResponse = {
    /**
     * Auth code data
     */
    data: CreateAuthKeysCodeData;
};
/** @internal */
export declare const CreateAuthKeysCodeCodeChallengeMethod$outboundSchema: z.ZodType<string, CreateAuthKeysCodeCodeChallengeMethod>;
/** @internal */
export declare const UsageLimitType$outboundSchema: z.ZodType<string, UsageLimitType>;
/** @internal */
export type CreateAuthKeysCodeRequestBody$Outbound = {
    callback_url: string;
    code_challenge?: string | undefined;
    code_challenge_method?: string | undefined;
    expires_at?: string | null | undefined;
    key_label?: string | undefined;
    limit?: number | undefined;
    usage_limit_type?: string | undefined;
    workspace_id?: string | undefined;
};
/** @internal */
export declare const CreateAuthKeysCodeRequestBody$outboundSchema: z.ZodType<CreateAuthKeysCodeRequestBody$Outbound, CreateAuthKeysCodeRequestBody>;
export declare function createAuthKeysCodeRequestBodyToJSON(createAuthKeysCodeRequestBody: CreateAuthKeysCodeRequestBody): string;
/** @internal */
export type CreateAuthKeysCodeRequest$Outbound = {
    "HTTP-Referer"?: string | undefined;
    appTitle?: string | undefined;
    appCategories?: string | undefined;
    RequestBody: CreateAuthKeysCodeRequestBody$Outbound;
};
/** @internal */
export declare const CreateAuthKeysCodeRequest$outboundSchema: z.ZodType<CreateAuthKeysCodeRequest$Outbound, CreateAuthKeysCodeRequest>;
export declare function createAuthKeysCodeRequestToJSON(createAuthKeysCodeRequest: CreateAuthKeysCodeRequest): string;
/** @internal */
export declare const CreateAuthKeysCodeData$inboundSchema: z.ZodType<CreateAuthKeysCodeData, unknown>;
export declare function createAuthKeysCodeDataFromJSON(jsonString: string): SafeParseResult<CreateAuthKeysCodeData, SDKValidationError>;
/** @internal */
export declare const CreateAuthKeysCodeResponse$inboundSchema: z.ZodType<CreateAuthKeysCodeResponse, unknown>;
export declare function createAuthKeysCodeResponseFromJSON(jsonString: string): SafeParseResult<CreateAuthKeysCodeResponse, SDKValidationError>;
//# sourceMappingURL=createauthkeyscode.d.ts.map