import * as z from "zod/v3";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
/**
 * Domain describes a permission domain that can be granted to an
 *
 * @remarks
 *  API key. Verbs are derived from id + group + readable/writable.
 */
export type Domain = {
    /**
     * Stable domain identifier (e.g. "agent", "chat_completions"). Used
     *
     * @remarks
     *  as the key in ApiKey.access and as the verb prefix in resolved
     *  permissions (e.g. agent.list, agent.view, agent.create).
     */
    id?: string | undefined;
    /**
     * Human-readable label for the dashboard.
     */
    displayName?: string | undefined;
    /**
     * Logical group used by the UI to render this entry.
     */
    group?: number | undefined;
    /**
     * Project scopes this domain may be granted under. A workspace-
     *
     * @remarks
     *  admin domain like `member` is typically SCOPE_MODE_ALL only.
     */
    allowedScopes?: Array<number> | undefined;
    /**
     * Whether this domain can be granted read access.
     */
    readable?: boolean | undefined;
    /**
     * Whether this domain can be granted write access.
     */
    writable?: boolean | undefined;
};
/** @internal */
export declare const Domain$inboundSchema: z.ZodType<Domain, z.ZodTypeDef, unknown>;
export declare function domainFromJSON(jsonString: string): SafeParseResult<Domain, SDKValidationError>;
//# sourceMappingURL=domain.d.ts.map