export interface CreateDatasetGroupCommandInput {
    name: string;
    roleArn?: string;
    kmsKeyArn?: string;
    domain?: 'ECOMMERCE' | 'VIDEO_ON_DEMAND';
    tags?: Array<{
        tagKey: string;
        tagValue: string;
    }>;
}
export interface CreateDatasetGroupCommandOutput {
    datasetGroupArn?: string;
    domain?: 'ECOMMERCE' | 'VIDEO_ON_DEMAND';
}
export interface DescribeDatasetGroupCommandInput {
    datasetGroupArn: string;
}
export interface DatasetGroup {
    name?: string;
    datasetGroupArn?: string;
    status?: string;
    roleArn?: string;
    kmsKeyArn?: string;
    creationDateTime?: string;
    lastUpdatedDateTime?: string;
    failureReason?: string;
    domain?: 'ECOMMERCE' | 'VIDEO_ON_DEMAND';
}
export interface DescribeDatasetGroupCommandOutput {
    datasetGroup?: DatasetGroup;
}
export interface ListDatasetGroupsCommandInput {
    nextToken?: string;
    maxResults?: number;
}
export interface DatasetGroupSummary {
    name?: string;
    datasetGroupArn?: string;
    status?: string;
    creationDateTime?: string;
    lastUpdatedDateTime?: string;
    failureReason?: string;
    domain?: 'ECOMMERCE' | 'VIDEO_ON_DEMAND';
}
export interface ListDatasetGroupsCommandOutput {
    datasetGroups?: DatasetGroupSummary[];
    nextToken?: string;
}
export interface CreateSchemaCommandInput {
    name: string;
    schema: string;
    domain?: 'ECOMMERCE' | 'VIDEO_ON_DEMAND';
}
export interface CreateSchemaCommandOutput {
    schemaArn?: string;
}
export interface CreateDatasetCommandInput {
    name: string;
    schemaArn: string;
    datasetGroupArn: string;
    datasetType: 'Interactions' | 'Items' | 'Users' | 'Actions' | 'Action_Interactions';
    tags?: Array<{
        tagKey: string;
        tagValue: string;
    }>;
}
export interface CreateDatasetCommandOutput {
    datasetArn?: string;
}
export interface CreateDatasetImportJobCommandInput {
    jobName: string;
    datasetArn: string;
    dataSource: {
        dataLocation: string;
    };
    roleArn: string;
    importMode?: 'FULL' | 'INCREMENTAL';
    publishAttributionMetricsToS3?: boolean;
    tags?: Array<{
        tagKey: string;
        tagValue: string;
    }>;
}
export interface CreateDatasetImportJobCommandOutput {
    datasetImportJobArn?: string;
}
export interface DescribeDatasetImportJobCommandInput {
    datasetImportJobArn: string;
}
export interface DatasetImportJob {
    jobName?: string;
    datasetImportJobArn?: string;
    datasetArn?: string;
    dataSource?: {
        dataLocation?: string;
    };
    roleArn?: string;
    status?: string;
    creationDateTime?: string;
    lastUpdatedDateTime?: string;
    failureReason?: string;
    importMode?: 'FULL' | 'INCREMENTAL';
    publishAttributionMetricsToS3?: boolean;
}
export interface DescribeDatasetImportJobCommandOutput {
    datasetImportJob?: DatasetImportJob;
}
export interface CreateSolutionCommandInput {
    name: string;
    datasetGroupArn: string;
    recipeArn?: string;
    eventType?: string;
    solutionConfig?: {
        eventValueThreshold?: string;
        hpoConfig?: {
            hpoObjective?: {
                type?: string;
                metricName?: string;
                metricRegex?: string;
            };
            hpoResourceConfig?: {
                maxNumberOfTrainingJobs?: string;
                maxParallelTrainingJobs?: string;
            };
            algorithmHyperParameterRanges?: {
                integerHyperParameterRanges?: Array<{
                    name?: string;
                    minValue?: number;
                    maxValue?: number;
                }>;
                continuousHyperParameterRanges?: Array<{
                    name?: string;
                    minValue?: number;
                    maxValue?: number;
                }>;
                categoricalHyperParameterRanges?: Array<{
                    name?: string;
                    values?: string[];
                }>;
            };
        };
        algorithmHyperParameters?: Record<string, string>;
        featureTransformationParameters?: Record<string, string>;
        autoMLConfig?: {
            metricName?: string;
            recipeList?: string[];
        };
        optimizationObjective?: {
            itemAttribute?: string;
            objectiveSensitivity?: 'LOW' | 'MEDIUM' | 'HIGH' | 'OFF';
        };
        trainingDataConfig?: {
            excludedDatasetColumns?: Record<string, string[]>;
        };
    };
    performHPO?: boolean;
    performAutoML?: boolean;
    tags?: Array<{
        tagKey: string;
        tagValue: string;
    }>;
}
export interface CreateSolutionCommandOutput {
    solutionArn?: string;
}
export interface CreateSolutionVersionCommandInput {
    name?: string;
    solutionArn: string;
    trainingMode?: 'FULL' | 'UPDATE' | 'AUTOTRAIN';
    tags?: Array<{
        tagKey: string;
        tagValue: string;
    }>;
}
export interface CreateSolutionVersionCommandOutput {
    solutionVersionArn?: string;
}
export interface DescribeSolutionVersionCommandInput {
    solutionVersionArn: string;
}
export interface SolutionVersion {
    name?: string;
    solutionVersionArn?: string;
    solutionArn?: string;
    performHPO?: boolean;
    performAutoML?: boolean;
    recipeArn?: string;
    eventType?: string;
    datasetGroupArn?: string;
    solutionConfig?: {
        eventValueThreshold?: string;
        hpoConfig?: Record<string, unknown>;
        algorithmHyperParameters?: Record<string, string>;
        featureTransformationParameters?: Record<string, string>;
        autoMLConfig?: Record<string, unknown>;
    };
    trainingHours?: number;
    trainingMode?: 'FULL' | 'UPDATE' | 'AUTOTRAIN';
    tunedHPOParams?: {
        algorithmHyperParameters?: Record<string, string>;
    };
    status?: string;
    failureReason?: string;
    creationDateTime?: string;
    lastUpdatedDateTime?: string;
    trainingType?: 'AUTOMATIC' | 'MANUAL';
}
export interface DescribeSolutionVersionCommandOutput {
    solutionVersion?: SolutionVersion;
}
export interface CreateCampaignCommandInput {
    name: string;
    solutionVersionArn: string;
    minProvisionedTPS?: number;
    campaignConfig?: {
        itemExplorationConfig?: Record<string, string>;
        enableMetadataWithRecommendations?: boolean;
        syncWithLatestSolutionVersion?: boolean;
    };
    tags?: Array<{
        tagKey: string;
        tagValue: string;
    }>;
}
export interface CreateCampaignCommandOutput {
    campaignArn?: string;
}
export interface DescribeCampaignCommandInput {
    campaignArn: string;
}
export interface Campaign {
    name?: string;
    campaignArn?: string;
    solutionVersionArn?: string;
    minProvisionedTPS?: number;
    campaignConfig?: {
        itemExplorationConfig?: Record<string, string>;
        enableMetadataWithRecommendations?: boolean;
        syncWithLatestSolutionVersion?: boolean;
    };
    status?: string;
    failureReason?: string;
    creationDateTime?: string;
    lastUpdatedDateTime?: string;
    latestCampaignUpdate?: {
        solutionVersionArn?: string;
        minProvisionedTPS?: number;
        campaignConfig?: Record<string, unknown>;
        status?: string;
        failureReason?: string;
        creationDateTime?: string;
        lastUpdatedDateTime?: string;
    };
}
export interface DescribeCampaignCommandOutput {
    campaign?: Campaign;
}
export interface GetRecommendationsCommandInput {
    campaignArn?: string;
    recommenderArn?: string;
    itemId?: string;
    userId?: string;
    numResults?: number;
    context?: Record<string, string>;
    filterArn?: string;
    filterValues?: Record<string, string>;
    promotions?: Array<{
        name?: string;
        percentPromotedItems?: number;
        filterArn?: string;
        filterValues?: Record<string, string>;
    }>;
    metadataColumns?: Record<string, string[]>;
}
export interface PredictedItem {
    itemId?: string;
    score?: number;
    promotionName?: string;
    metadata?: Record<string, string>;
    reason?: string[];
}
export interface GetRecommendationsCommandOutput {
    itemList?: PredictedItem[];
    recommendationId?: string;
}
export interface GetPersonalizedRankingCommandInput {
    campaignArn: string;
    inputList: string[];
    userId: string;
    context?: Record<string, string>;
    filterArn?: string;
    filterValues?: Record<string, string>;
    metadataColumns?: Record<string, string[]>;
}
export interface GetPersonalizedRankingCommandOutput {
    personalizedRanking?: PredictedItem[];
    recommendationId?: string;
}
export interface CreateRecommenderCommandInput {
    name: string;
    datasetGroupArn: string;
    recipeArn: string;
    recommenderConfig?: {
        itemExplorationConfig?: Record<string, string>;
        minRecommendationRequestsPerSecond?: number;
        trainingDataConfig?: {
            excludedDatasetColumns?: Record<string, string[]>;
        };
        enableMetadataWithRecommendations?: boolean;
    };
    tags?: Array<{
        tagKey: string;
        tagValue: string;
    }>;
}
export interface CreateRecommenderCommandOutput {
    recommenderArn?: string;
}
export interface DescribeRecommenderCommandInput {
    recommenderArn: string;
}
export interface Recommender {
    recommenderArn?: string;
    datasetGroupArn?: string;
    name?: string;
    recipeArn?: string;
    recommenderConfig?: {
        itemExplorationConfig?: Record<string, string>;
        minRecommendationRequestsPerSecond?: number;
        trainingDataConfig?: {
            excludedDatasetColumns?: Record<string, string[]>;
        };
        enableMetadataWithRecommendations?: boolean;
    };
    creationDateTime?: string;
    lastUpdatedDateTime?: string;
    status?: string;
    failureReason?: string;
    latestRecommenderUpdate?: {
        recommenderConfig?: Record<string, unknown>;
        creationDateTime?: string;
        lastUpdatedDateTime?: string;
        status?: string;
        failureReason?: string;
    };
    modelMetrics?: Record<string, number>;
}
export interface DescribeRecommenderCommandOutput {
    recommender?: Recommender;
}
export interface ListRecommendersCommandInput {
    datasetGroupArn?: string;
    nextToken?: string;
    maxResults?: number;
}
export interface RecommenderSummary {
    name?: string;
    recommenderArn?: string;
    datasetGroupArn?: string;
    recipeArn?: string;
    recommenderConfig?: Record<string, unknown>;
    status?: string;
    creationDateTime?: string;
    lastUpdatedDateTime?: string;
}
export interface ListRecommendersCommandOutput {
    recommenders?: RecommenderSummary[];
    nextToken?: string;
}
export interface PutEventsCommandInput {
    trackingId: string;
    userId?: string;
    sessionId: string;
    eventList: Array<{
        eventId?: string;
        eventType: string;
        eventValue?: number;
        itemId?: string;
        properties?: string;
        sentAt: Date | string;
        recommendationId?: string;
        impression?: string[];
        metricAttribution?: {
            eventAttributionSource?: string;
        };
    }>;
}
export interface PutEventsCommandOutput {
}
export interface PutItemsCommandInput {
    datasetArn: string;
    items: Array<{
        itemId: string;
        properties?: string;
    }>;
}
export interface PutItemsCommandOutput {
}
export interface PutUsersCommandInput {
    datasetArn: string;
    users: Array<{
        userId: string;
        properties?: string;
    }>;
}
export interface PutUsersCommandOutput {
}
export interface CreateEventTrackerCommandInput {
    name: string;
    datasetGroupArn: string;
    tags?: Array<{
        tagKey: string;
        tagValue: string;
    }>;
}
export interface CreateEventTrackerCommandOutput {
    eventTrackerArn?: string;
    trackingId?: string;
}
export interface DescribeEventTrackerCommandInput {
    eventTrackerArn: string;
}
export interface EventTracker {
    name?: string;
    eventTrackerArn?: string;
    accountId?: string;
    trackingId?: string;
    datasetGroupArn?: string;
    status?: string;
    creationDateTime?: string;
    lastUpdatedDateTime?: string;
}
export interface DescribeEventTrackerCommandOutput {
    eventTracker?: EventTracker;
}
export interface CreateFilterCommandInput {
    name: string;
    datasetGroupArn: string;
    filterExpression: string;
    tags?: Array<{
        tagKey: string;
        tagValue: string;
    }>;
}
export interface CreateFilterCommandOutput {
    filterArn?: string;
}
export interface ListRecipesCommandInput {
    recipeProvider?: 'SERVICE';
    nextToken?: string;
    maxResults?: number;
    domain?: 'ECOMMERCE' | 'VIDEO_ON_DEMAND';
}
export interface RecipeSummary {
    name?: string;
    recipeArn?: string;
    status?: string;
    creationDateTime?: string;
    lastUpdatedDateTime?: string;
    domain?: 'ECOMMERCE' | 'VIDEO_ON_DEMAND';
}
export interface ListRecipesCommandOutput {
    recipes?: RecipeSummary[];
    nextToken?: string;
}
export declare class PersonalizeClient {
    private client;
    private region;
    constructor(region?: string);
    private request;
    createDatasetGroup(params: CreateDatasetGroupCommandInput): Promise<CreateDatasetGroupCommandOutput>;
    describeDatasetGroup(params: DescribeDatasetGroupCommandInput): Promise<DescribeDatasetGroupCommandOutput>;
    listDatasetGroups(params?: ListDatasetGroupsCommandInput): Promise<ListDatasetGroupsCommandOutput>;
    createSchema(params: CreateSchemaCommandInput): Promise<CreateSchemaCommandOutput>;
    createDataset(params: CreateDatasetCommandInput): Promise<CreateDatasetCommandOutput>;
    createDatasetImportJob(params: CreateDatasetImportJobCommandInput): Promise<CreateDatasetImportJobCommandOutput>;
    describeDatasetImportJob(params: DescribeDatasetImportJobCommandInput): Promise<DescribeDatasetImportJobCommandOutput>;
    createSolution(params: CreateSolutionCommandInput): Promise<CreateSolutionCommandOutput>;
    createSolutionVersion(params: CreateSolutionVersionCommandInput): Promise<CreateSolutionVersionCommandOutput>;
    describeSolutionVersion(params: DescribeSolutionVersionCommandInput): Promise<DescribeSolutionVersionCommandOutput>;
    createCampaign(params: CreateCampaignCommandInput): Promise<CreateCampaignCommandOutput>;
    describeCampaign(params: DescribeCampaignCommandInput): Promise<DescribeCampaignCommandOutput>;
    createRecommender(params: CreateRecommenderCommandInput): Promise<CreateRecommenderCommandOutput>;
    describeRecommender(params: DescribeRecommenderCommandInput): Promise<DescribeRecommenderCommandOutput>;
    listRecommenders(params?: ListRecommendersCommandInput): Promise<ListRecommendersCommandOutput>;
    createEventTracker(params: CreateEventTrackerCommandInput): Promise<CreateEventTrackerCommandOutput>;
    describeEventTracker(params: DescribeEventTrackerCommandInput): Promise<DescribeEventTrackerCommandOutput>;
    createFilter(params: CreateFilterCommandInput): Promise<CreateFilterCommandOutput>;
    listRecipes(params?: ListRecipesCommandInput): Promise<ListRecipesCommandOutput>;
    /**
     * Wait for a solution version to be ready
     */
    waitForSolutionVersion(solutionVersionArn: string, options?: {
        maxWaitMs?: number;
        pollIntervalMs?: number;
    }): Promise<SolutionVersion>;
    /**
     * Wait for a campaign to be active
     */
    waitForCampaign(campaignArn: string, options?: {
        maxWaitMs?: number;
        pollIntervalMs?: number;
    }): Promise<Campaign>;
    /**
     * Wait for a dataset import job to complete
     */
    waitForDatasetImportJob(jobArn: string, options?: {
        maxWaitMs?: number;
        pollIntervalMs?: number;
    }): Promise<DatasetImportJob>;
}
export declare class PersonalizeRuntimeClient {
    private client;
    private region;
    constructor(region?: string);
    private request;
    /**
     * Get recommendations for a user
     */
    getRecommendations(params: GetRecommendationsCommandInput): Promise<GetRecommendationsCommandOutput>;
    /**
     * Get personalized ranking of items for a user
     */
    getPersonalizedRanking(params: GetPersonalizedRankingCommandInput): Promise<GetPersonalizedRankingCommandOutput>;
    /**
     * Simple recommendations for a user
     */
    recommendForUser(campaignArn: string, userId: string, numResults?: number): Promise<string[]>;
    /**
     * Get similar items
     */
    getSimilarItems(campaignArn: string, itemId: string, numResults?: number): Promise<string[]>;
    /**
     * Rank items for a user
     */
    rankItems(campaignArn: string, userId: string, itemIds: string[]): Promise<string[]>;
}
export declare class PersonalizeEventsClient {
    private client;
    private region;
    constructor(region?: string);
    private request;
    /**
     * Record user events
     */
    putEvents(params: PutEventsCommandInput): Promise<PutEventsCommandOutput>;
    /**
     * Add or update items
     */
    putItems(params: PutItemsCommandInput): Promise<PutItemsCommandOutput>;
    /**
     * Add or update users
     */
    putUsers(params: PutUsersCommandInput): Promise<PutUsersCommandOutput>;
    /**
     * Track a simple click/view event
     */
    trackEvent(trackingId: string, sessionId: string, userId: string, itemId: string, eventType?: string): Promise<void>;
    /**
     * Track a purchase event with value
     */
    trackPurchase(trackingId: string, sessionId: string, userId: string, itemId: string, value: number): Promise<void>;
}
/**
 * Get recommendations for a user
 */
export declare function getRecommendations(campaignArn: string, userId: string, options?: {
    numResults?: number;
    region?: string;
}): Promise<string[]>;
/**
 * Get similar items
 */
export declare function getSimilarItems(campaignArn: string, itemId: string, options?: {
    numResults?: number;
    region?: string;
}): Promise<string[]>;
/**
 * Track user event
 */
export declare function trackEvent(trackingId: string, sessionId: string, userId: string, itemId: string, eventType?: string, region?: string): Promise<void>;
