import { IRowNode } from 'ag-grid-enterprise';
import { AppIdentifier, Channel, Context, ContextType, DesktopAgent, Intent, IntentResolution } from '@finos/fdc3';
/**
 * Provides run-time access to AdapTable's FDC3 functionality
 */
export interface Fdc3Api {
    /**
     * Returns the FDC3 Desktop Agent
     */
    getDesktopAgent(): DesktopAgent;
    /**
     * Returns the human-friendly label for the given Context Type
     * @param contextType - The FDC3 Context Type
     */
    getContextLabel(contextType: ContextType): string;
    /**
     * Builds FDC3 Context Data based on the given Context Type and Row Node
     * @param contextType - The FDC3 Context Type
     * @param rowNode - The Row Node
     */
    buildContextDataFromRow(contextType: ContextType, rowNode: IRowNode): Context;
    /**
     * Builds FDC3 Context Data based on the given Context Type and the Row Node with the given Primary Key Value
     * @param contextType - The FDC3 Context Type
     * @param primaryKeyValue - The Primary Key Value
     */
    buildContextDataForPrimaryKey(contextType: ContextType, primaryKeyValue: string | number): Context | undefined;
    /**
     * Raises an Intent with the given Context from the given Row Node
     * @param rowNode - The Row Node
     * @param intent - The FDC3 Intent
     * @param contextType - The FDC3 Context Type
     * @param appIdentifier - The App Identifier
     */
    raiseIntentFromRow(rowNode: IRowNode, intent: Intent, contextType: ContextType, appIdentifier?: AppIdentifier): Promise<IntentResolution>;
    /**
     * Raises an Intent with the given Context from the given Row Node with the given Primary Key Value
     * @param primaryKeyValue - The Primary Key Value
     * @param intent - The FDC3 Intent
     * @param contextType - The FDC3 Context Type
     * @param appIdentifier - The App Identifier
     */
    raiseIntentFromPrimaryKey(primaryKeyValue: string | number, intent: Intent, contextType: ContextType, appIdentifier?: AppIdentifier): Promise<IntentResolution> | undefined;
    /**
     * Finds and raises an Intent based on the given Context from the given Row Node
     * @param rowNode - The Row Node
     * @param contextType - The FDC3 Context Type
     * @param appIdentifier - The App Identifier
     */
    raiseIntentForContextFromRow(rowNode: IRowNode, contextType: ContextType, appIdentifier?: AppIdentifier): Promise<IntentResolution>;
    /**
     * Finds and raises an Intent based on the given Context from the given Row Node with the given Primary Key Value
     * @param primaryKeyValue - The Primary Key Value
     * @param contextType - The FDC3 Context Type
     * @param appIdentifier - The App Identifier
     */
    raiseIntentForContextFromPrimaryKey(primaryKeyValue: string | number, contextType: ContextType, appIdentifier?: AppIdentifier): Promise<IntentResolution> | undefined;
    /**
     * Broadcasts the given Context from the given Row Node
     * @param rowNode - The Row Node
     * @param contextType - The FDC3 Context Type
     * @param channel - (optional) Channel to broadcast to; if not provided, the Context will be broadcast to whatever User Channel the app is joined to
     */
    broadcastFromRow(rowNode: IRowNode, contextType: ContextType, channel?: Channel): Promise<void>;
    /**
     * Broadcasts the given Context from the given Row Node with the given Primary Key Value
     * @param primaryKeyValue - The Primary Key Value
     * @param contextType - The FDC3 Context Type
     * @param channel - (optional) Channel to broadcast to; if not provided, the Context will be broadcast to whatever User Channel the app is joined to
     */
    broadcastFromPrimaryKey(primaryKeyValue: string | number, contextType: ContextType, channel?: Channel): Promise<void> | undefined;
    /**
     * Checks if the given Context Type is a FDC3 standard Context Type
     */
    isStandardContextType(contextType: string): boolean;
    /**
     * Checks if the given Intent is a FDC3 standard Intent Type
     */
    isStandardIntentType(intentType: string): boolean;
}
