import type { PlatformTone } from "../_internal/types.gen";
import type { RequestOptions } from "../base-client";
import { RequestBuilder } from "../request-builder";
/** Attributes accepted when creating a platform tone. */
export type CreatePlatformToneAttributes = {
    /** Required. Social platform this tone applies to. */
    platform: "facebook" | "instagram" | "threads" | "twitter" | "linkedin" | "reddit" | "bluesky";
    /** Required. Brand identity UUID this tone belongs to. */
    brand_identity_id: string;
    /** Tone preset. Default: "casual". */
    tone?: "casual" | "professional" | "humorous" | "inspirational" | "educational" | "promotional";
    /** Emoji usage policy. Default: "minimal". */
    emoji_policy?: "none" | "minimal" | "moderate" | "heavy";
    /** Number of hashtags to include. Default: 5. */
    hashtag_count?: number;
    /** Maximum character length for posts on this platform. */
    max_length?: number;
    /** Call-to-action text to include in generated copy. */
    call_to_action?: string;
    /** Free-form instructions for AI content generation on this platform. */
    custom_instructions?: string;
};
/** Attributes accepted when updating a platform tone (PATCH semantics). */
export type UpdatePlatformToneAttributes = Partial<Omit<CreatePlatformToneAttributes, "brand_identity_id" | "platform">>;
export declare function createPlatformTonesNamespace(rb: RequestBuilder): {
    /**
     * List all platform tones visible to the current actor.
     *
     * @param options - Optional request options (pagination, filters, sorting).
     * @returns A list of `PlatformTone` records.
     *
     * @example
     * ```ts
     * const tones = await admin.platformTones.list();
     * ```
     */
    list: (options?: RequestOptions) => Promise<PlatformTone[]>;
    /**
     * Get a platform tone by ID.
     *
     * @param id - The UUID of the platform tone.
     * @param options - Optional request options.
     * @returns The `PlatformTone` record.
     *
     * @example
     * ```ts
     * const tone = await admin.platformTones.get("tone-uuid");
     * ```
     */
    get: (id: string, options?: RequestOptions) => Promise<PlatformTone>;
    /**
     * Create a new platform tone.
     *
     * @param attributes - Platform tone attributes.
     * @param options - Optional request options.
     * @returns The created `PlatformTone`.
     *
     * @example
     * ```ts
     * const tone = await admin.platformTones.create({
     *   name: "Professional",
     *   description: "Formal business communication tone",
     * });
     * ```
     */
    create: (attributes: CreatePlatformToneAttributes, options?: RequestOptions) => Promise<PlatformTone>;
    /**
     * Update a platform tone.
     *
     * @param id - The UUID of the platform tone.
     * @param attributes - Fields to update.
     * @param options - Optional request options.
     * @returns The updated `PlatformTone`.
     *
     * @example
     * ```ts
     * const tone = await admin.platformTones.update("tone-uuid", {
     *   name: "Casual",
     * });
     * ```
     */
    update: (id: string, attributes: UpdatePlatformToneAttributes, options?: RequestOptions) => Promise<PlatformTone>;
    /**
     * Delete a platform tone.
     *
     * @param id - The UUID of the platform tone.
     * @param options - Optional request options.
     * @returns `true` on success.
     *
     * @example
     * ```ts
     * await admin.platformTones.delete("tone-uuid");
     * ```
     */
    delete: (id: string, options?: RequestOptions) => Promise<true>;
    /**
     * List platform tones for a specific brand identity.
     *
     * @param brandIdentityId - The UUID of the brand identity.
     * @param options - Optional request options.
     * @returns A list of `PlatformTone` records.
     *
     * @example
     * ```ts
     * const tones = await admin.platformTones.listByBrand("brand-uuid");
     * ```
     */
    listByBrand: (brandIdentityId: string, options?: RequestOptions) => Promise<PlatformTone[]>;
};
//# sourceMappingURL=platform-tones.d.ts.map