import type { BrandIdentity } from "../_internal/types.gen";
import type { RequestOptions } from "../base-client";
import { RequestBuilder } from "../request-builder";
/** Attributes accepted when creating a brand identity. */
export type CreateBrandIdentityAttributes = {
    /** Required. Display name for this brand identity. */
    name: string;
    /** Tenant UUID — required for tenant-scoped identities. */
    tenant_id: string;
    /** Optional workspace UUID — set for workspace-level overrides, omit for tenant-level. */
    workspace_id?: string;
    /** Brand voice description (e.g. "Professional but approachable"). */
    voice?: string;
    /** Brand values as an array of strings (e.g. ["innovation", "integrity"]). */
    values?: string[];
    /** Target audience description. */
    target_audience?: string;
    /** Industry vertical. */
    industry?: string;
    /** Brand website URL. */
    website_url?: string;
    /** Logo image URL. */
    logo_url?: string;
    /** Color palette map (e.g. { primary: "#0066CC", secondary: "#FF0000" }). */
    color_palette?: Record<string, string>;
    /** General description of this brand identity. */
    description?: string;
    /** Whether this is the default identity at its scope level. */
    is_default?: boolean;
};
/** Attributes accepted when updating a brand identity (PATCH semantics). */
export type UpdateBrandIdentityAttributes = Partial<Omit<CreateBrandIdentityAttributes, "workspace_id" | "tenant_id">>;
export declare function createBrandIdentitiesNamespace(rb: RequestBuilder): {
    /**
     * List all brand identities visible to the current actor.
     *
     * @param options - Optional request options (pagination, filters, sorting).
     * @returns A list of `BrandIdentity` records.
     *
     * @example
     * ```ts
     * const identities = await admin.brandIdentities.list();
     * ```
     */
    list: (options?: RequestOptions) => Promise<BrandIdentity[]>;
    /**
     * Get a brand identity by ID.
     *
     * @param id - The UUID of the brand identity.
     * @param options - Optional request options.
     * @returns The `BrandIdentity` record.
     *
     * @example
     * ```ts
     * const identity = await admin.brandIdentities.get("brand-uuid");
     * ```
     */
    get: (id: string, options?: RequestOptions) => Promise<BrandIdentity>;
    /**
     * Create a new brand identity.
     *
     * @param attributes - Brand identity attributes.
     * @param options - Optional request options.
     * @returns The created `BrandIdentity`.
     *
     * @example
     * ```ts
     * const identity = await admin.brandIdentities.create({
     *   name: "Corporate Brand",
     *   primary_color: "#0066CC",
     * });
     * ```
     */
    create: (attributes: CreateBrandIdentityAttributes, options?: RequestOptions) => Promise<BrandIdentity>;
    /**
     * Update a brand identity.
     *
     * @param id - The UUID of the brand identity.
     * @param attributes - Fields to update.
     * @param options - Optional request options.
     * @returns The updated `BrandIdentity`.
     *
     * @example
     * ```ts
     * const identity = await admin.brandIdentities.update("brand-uuid", {
     *   primary_color: "#FF0000",
     * });
     * ```
     */
    update: (id: string, attributes: UpdateBrandIdentityAttributes, options?: RequestOptions) => Promise<BrandIdentity>;
    /**
     * Delete a brand identity.
     *
     * @param id - The UUID of the brand identity.
     * @param options - Optional request options.
     * @returns `true` on success.
     *
     * @example
     * ```ts
     * await admin.brandIdentities.delete("brand-uuid");
     * ```
     */
    delete: (id: string, options?: RequestOptions) => Promise<true>;
    /**
     * List brand identities for a specific tenant.
     *
     * @param tenantId - The UUID of the tenant.
     * @param options - Optional request options.
     * @returns A list of `BrandIdentity` records.
     *
     * @example
     * ```ts
     * const identities = await admin.brandIdentities.listByTenant("tenant-uuid");
     * ```
     */
    listByTenant: (tenantId: string, options?: RequestOptions) => Promise<BrandIdentity[]>;
    /**
     * List brand identities for a specific workspace.
     *
     * @param workspaceId - The UUID of the workspace.
     * @param options - Optional request options.
     * @returns A list of `BrandIdentity` records.
     *
     * @example
     * ```ts
     * const identities = await admin.brandIdentities.listByWorkspace("workspace-uuid");
     * ```
     */
    listByWorkspace: (workspaceId: string, options?: RequestOptions) => Promise<BrandIdentity[]>;
    /**
     * Get the default brand identity for a tenant.
     *
     * @param tenantId - The UUID of the tenant.
     * @param options - Optional request options.
     * @returns The default `BrandIdentity` for the tenant.
     *
     * @example
     * ```ts
     * const identity = await admin.brandIdentities.getDefaultForTenant("tenant-uuid");
     * ```
     */
    getDefaultForTenant: (tenantId: string, options?: RequestOptions) => Promise<BrandIdentity>;
    /**
     * Get the default brand identity for a workspace.
     *
     * @param workspaceId - The UUID of the workspace.
     * @param options - Optional request options.
     * @returns The default `BrandIdentity` for the workspace.
     *
     * @example
     * ```ts
     * const identity = await admin.brandIdentities.getDefaultForWorkspace("workspace-uuid");
     * ```
     */
    getDefaultForWorkspace: (workspaceId: string, options?: RequestOptions) => Promise<BrandIdentity>;
    /**
     * Set a brand identity as the default.
     *
     * @param id - The UUID of the brand identity.
     * @param options - Optional request options.
     * @returns The updated `BrandIdentity`.
     *
     * @example
     * ```ts
     * const identity = await admin.brandIdentities.setDefault("brand-uuid");
     * ```
     */
    setDefault: (id: string, options?: RequestOptions) => Promise<BrandIdentity>;
    /**
     * Unset a brand identity as the default.
     *
     * @param id - The UUID of the brand identity.
     * @param options - Optional request options.
     * @returns The updated `BrandIdentity`.
     *
     * @example
     * ```ts
     * const identity = await admin.brandIdentities.unsetDefault("brand-uuid");
     * ```
     */
    unsetDefault: (id: string, options?: RequestOptions) => Promise<BrandIdentity>;
};
//# sourceMappingURL=brand-identities.d.ts.map