/**
 * Shared utility for searching and filtering actors.
 * Combines searchActorsByKeywords with filterRentalActors to prevent accidental omission
 * of the filtering step and reduce code duplication.
 */
import type { ActorStoreList } from '../types.js';
export type SearchAndFilterActorsOptions = {
    keywords: string;
    apifyToken: string;
    limit: number;
    offset: number;
    skyfireMode?: boolean;
    userRentedActorIds?: string[];
};
export declare function searchActorsByKeywords(search: string, apifyToken: string, limit?: number | undefined, offset?: number | undefined, allowsAgenticUsers?: boolean | undefined): Promise<ActorStoreList[]>;
/**
 * Search actors by keywords and filter rental actors.
 * This combines two operations that should always happen together to ensure consistency.
 *
 * @param options Search and filter options
 * @returns Array of filtered actors, limited to the specified limit
 */
export declare function searchAndFilterActors(options: SearchAndFilterActorsOptions): Promise<ActorStoreList[]>;
/**
 * Filters out actors with the 'FLAT_PRICE_PER_MONTH' pricing model (rental actors),
 * unless the actor's ID is present in the user's rented actor IDs list.
 *
 * This is necessary because the Store list API does not support filtering by multiple pricing models at once.
 *
 * @param actors - Array of ActorStorePruned objects to filter.
 * @param userRentedActorIds - Array of Actor IDs that the user has rented.
 * @returns Array of Actors excluding those with 'FLAT_PRICE_PER_MONTH' pricing model (= rental Actors),
 *  except for Actors that the user has rented (whose IDs are in userRentedActorIds).
 */
export declare function filterRentalActors(actors: ActorStoreList[], userRentedActorIds: string[]): ActorStoreList[];
//# sourceMappingURL=actor_search.d.ts.map