import { SalesforceService } from "@vlocode/salesforce"; import { VlocityDatapack } from "@vlocode/vlocity"; export interface FlexCardDefinition { SObjectType: string; ActivationField: string; Name: string; Id: string; AuthorName: string; VersionNumber: number; IsActive: boolean; IsChildCard?: boolean; Type?: 'flex' | 'classic'; UniqueName?: string; PropertySetConfig: string | object; StylingConfiguration?: string | object; Attachments?: any[]; Label?: Record; } interface OmniUiCardRecord { Name: string; Id: string; AuthorName: string; VersionNumber: number; IsActive: boolean; OmniUiCardType?: 'parent' | 'child'; UniqueName?: string; PropertySetConfig: string | object; StylingConfiguration?: string; } interface VlocityCardRecord { Name: string; Id: string; Author: string; Active: boolean; Version: number; IsChildCard: boolean; CardType: 'flex' | 'classic'; Definition: string | object; Styles?: string; } export declare namespace FlexCardDefinition { const OmniCardFields: string[]; const VlocityCardFields: string[]; function isCardDefinition(obj: any): obj is FlexCardDefinition; function fromDatapack(datapack: VlocityDatapack): FlexCardDefinition; function fromOmniCard(record: OmniUiCardRecord): FlexCardDefinition; function fromVlocityCard(record: VlocityCardRecord): FlexCardDefinition; } export type FlexCardIdentifier = string | { name: string; isChildCard?: boolean; author?: string; version?: number; active?: boolean; }; export declare class FlexCardDefinitionAccess { private readonly salesforceService; constructor(salesforceService: SalesforceService); /** * Retrieves flex card definitions based on the provided criteria. * * This method fetches both OmniCard and VlocityCard records matching the criteria, * converts them to FlexCardDefinition objects, and returns them as a Map keyed by card name. * * When multiple definitions exist for the same card name, the method prioritizes: * 1. Active cards over inactive ones * 2. Cards with lower version numbers when comparing cards of the same active status * * @param criteria - Optional identifier to filter the flex cards * @returns A Promise resolving to a Map of card names to their corresponding FlexCardDefinition */ getFlexCardDefinitions(criteria?: FlexCardIdentifier): Promise>; /** * Retrieves flex card definitions based on optional filter criteria. * This method queries both OmniScript and Vlocity card records and converts them to FlexCardDefinition instances. * * @param filter - Optional identifier to filter specific cards * @returns Promise resolving to an array of FlexCardDefinition objects */ filterCardDefinitions(filter?: FlexCardIdentifier): Promise; /** * Finds a FlexCard definition based on the provided identifier. * This method first checks for OmniScript card records, then falls back to Vlocity card records. * * @param id - The identifier used to locate the FlexCard * @returns A Promise that resolves to the found FlexCardDefinition * @throws Error when no FlexCard record is found for the provided identifier */ findCardDefinition(id: FlexCardIdentifier): Promise; private queryOmniCardRecords; private queryVlocityCardRecords; } export {}; //# sourceMappingURL=flexCardDefinition.d.ts.map