import type { P21PimClient } from '../client';
import type { PodcastListParams, PodcastCreateParams, PodcastUpdateParams } from '../schemas';
type ExecuteRequest = P21PimClient['executeRequest'];
/**
 * Creates the podcasts resource methods
 * OpenAPI Path: /podcasts → podcasts.*
 * @description Manage podcast content with full transcript support
 */
export declare function createPodcastsResource(executeRequest: ExecuteRequest): {
    /**
     * List podcasts with filtering and search capabilities
     *
     * @fullPath api.p21Pim.podcasts.list
     * @service p21-pim
     * @domain content-management
     * @dataMethod podcastsData.list
     * @discoverable true
     * @searchTerms ['podcasts', 'content', 'transcripts', 'media']
     * @relatedEndpoints ['joomla.content', 'gregorovich.documents']
     * @commonPatterns ['Manage podcast content', 'Handle media transcripts']
     *
     * @param params Query parameters for filtering and pagination
     * @returns Paginated list of podcasts
     */
    list: (params?: PodcastListParams) => Promise<{
        params: Record<string, unknown> | unknown[];
        data: import("zod").objectInputType<{
            podcastsUid: import("zod").ZodNumber;
        }, import("zod").ZodTypeAny, "passthrough">[];
        options: Record<string, unknown> | unknown[];
        status: number;
        message: string;
        count: number;
        total: number;
        totalResults: number;
    }>;
    /**
     * Get a specific podcast by UID
     *
     * @fullPath api.p21Pim.podcasts.get
     * @service p21-pim
     * @domain content-management
     * @dataMethod podcastsData.get
     * @discoverable true
     * @searchTerms ['podcasts', 'content']
     * @relatedEndpoints ['joomla.content']
     * @commonPatterns ['Retrieve podcast details']
     *
     * @param podcastsUid Podcast UID (must match OpenAPI parameter name)
     * @returns Single podcast record
     */
    get: (podcastsUid: number) => Promise<{
        params: Record<string, unknown> | unknown[];
        data: {
            podcastsUid: number;
        } & {
            [k: string]: unknown;
        };
        options: Record<string, unknown> | unknown[];
        status: number;
        message: string;
        count: number;
        total: number;
        totalResults: number;
    }>;
    /**
     * Create a new podcast record
     *
     * @fullPath api.p21Pim.podcasts.create
     * @service p21-pim
     * @domain content-management
     * @dataMethod podcastsData.create
     * @discoverable true
     * @searchTerms ['podcasts', 'create', 'content']
     * @relatedEndpoints ['joomla.content']
     * @commonPatterns ['Create podcast content']
     *
     * @param data Podcast data for creation
     * @returns Created podcast record
     */
    create: (data: PodcastCreateParams) => Promise<{
        params: Record<string, unknown> | unknown[];
        data: {
            podcastsUid: number;
        } & {
            [k: string]: unknown;
        };
        options: Record<string, unknown> | unknown[];
        status: number;
        message: string;
        count: number;
        total: number;
        totalResults: number;
    }>;
    /**
     * Update an existing podcast record
     *
     * @fullPath api.p21Pim.podcasts.update
     * @service p21-pim
     * @domain content-management
     * @dataMethod podcastsData.update
     * @discoverable true
     * @searchTerms ['podcasts', 'update', 'content']
     * @relatedEndpoints ['joomla.content']
     * @commonPatterns ['Update podcast content']
     *
     * @param podcastsUid Podcast UID (must match OpenAPI parameter name)
     * @param data Podcast data for update
     * @returns Updated podcast record
     */
    update: (podcastsUid: number, data: PodcastUpdateParams) => Promise<{
        params: Record<string, unknown> | unknown[];
        data: {
            podcastsUid: number;
        } & {
            [k: string]: unknown;
        };
        options: Record<string, unknown> | unknown[];
        status: number;
        message: string;
        count: number;
        total: number;
        totalResults: number;
    }>;
    /**
     * Soft delete a podcast record
     *
     * @fullPath api.p21Pim.podcasts.delete
     * @service p21-pim
     * @domain content-management
     * @dataMethod podcastsData.delete
     * @discoverable true
     * @searchTerms ['podcasts', 'delete', 'content']
     * @relatedEndpoints ['joomla.content']
     * @commonPatterns ['Delete podcast content']
     *
     * @param podcastsUid Podcast UID (must match OpenAPI parameter name)
     * @returns Deleted podcast confirmation
     */
    delete: (podcastsUid: number) => Promise<{
        params: Record<string, unknown> | unknown[];
        data: {
            podcastsUid: number;
        } & {
            [k: string]: unknown;
        };
        options: Record<string, unknown> | unknown[];
        status: number;
        message: string;
        count: number;
        total: number;
        totalResults: number;
    }>;
};
/**
 * Creates the podcastsData resource methods (data-only versions)
 */
export declare function createPodcastsDataResource(podcasts: ReturnType<typeof createPodcastsResource>): {
    list: (params?: PodcastListParams) => Promise<import("zod").objectInputType<{
        podcastsUid: import("zod").ZodNumber;
    }, import("zod").ZodTypeAny, "passthrough">[]>;
    get: (podcastsUid: number) => Promise<{
        podcastsUid: number;
    } & {
        [k: string]: unknown;
    }>;
    create: (data: PodcastCreateParams) => Promise<{
        podcastsUid: number;
    } & {
        [k: string]: unknown;
    }>;
    update: (podcastsUid: number, data: PodcastUpdateParams) => Promise<{
        podcastsUid: number;
    } & {
        [k: string]: unknown;
    }>;
    delete: (podcastsUid: number) => Promise<{
        podcastsUid: number;
    } & {
        [k: string]: unknown;
    }>;
};
export type PodcastsResource = ReturnType<typeof createPodcastsResource>;
export type PodcastsDataResource = ReturnType<typeof createPodcastsDataResource>;
export {};
//# sourceMappingURL=podcasts.d.ts.map