export interface ComponentState {
[hookIndex: number]: any;
}
export interface RenderState {
[componentKey: string]: ComponentState;
}
export interface Handler {
componentKey: string;
prop: string;
}
export declare type ForgeProps = {
[key: string]: any;
};
export interface ForgeDoc {
children: ForgeDoc[];
key?: string;
props?: ForgeProps;
type: string;
reconciliationCount?: number;
forgeReactMajorVersion?: number;
hasChanged?: boolean;
}
export declare type ForgeElement
> = PrimitiveElement
| FunctionElement
;
export interface PrimitiveElement
> {
type: string;
key: any;
props: P & {
children: ForgeNode[];
};
}
export interface FunctionElement
> {
type: (props: P) => ForgeElement;
key: any;
props: P & {
children: ForgeNode[];
};
}
export declare const isForgeElement: (auxNode: ForgeNode) => auxNode is ForgeElement>;
export declare type ForgeNode = ForgeElement | null | boolean | undefined;
export declare type ForgeChildren = T | (T | T[])[];
export interface PlatformContext {
type: string;
}
export interface ExtensionContext {
type: string;
[key: string]: any;
}
export interface LicenseDetails {
active: boolean;
billingPeriod: string;
ccpEntitlementId: string;
ccpEntitlementSlug: string;
isEvaluation: boolean;
subscriptionEndDate: string | null;
supportEntitlementNumber: string | null;
trialEndDate: string | null;
type: string;
}
export declare type AccountType = 'licensed' | 'unlicensed' | 'customer' | 'anonymous';
export interface ProductContext {
accountId?: string;
accountType?: AccountType;
cloudId?: string;
contentId?: string;
localId?: string;
spaceKey?: string;
spaceId?: string;
installContext?: string;
platformContext?: PlatformContext;
isConfig?: boolean;
extensionContext?: ExtensionContext;
license?: LicenseDetails;
moduleKey?: string;
siteUrl?: string;
appId?: string;
environmentId?: string;
environmentType?: string;
workspaceId?: string;
}
export interface ExtensionConfiguration {
[key: string]: any;
}
export interface User {
accountId: string;
}
export declare type CustomFieldValue = string | number | User | null;
export interface JiraContext extends PlatformContext {
type: 'jira';
issueId?: number;
issueKey?: string;
issueType?: string;
projectKey?: string;
projectId?: string;
projectType?: string;
}
export declare const isJiraContext: (context: PlatformContext) => context is JiraContext;
export interface IssuePanelExtensionContext extends ExtensionContext {
type: 'issuePanel';
isNewToIssue: boolean;
}
export declare const isIssuePanelExtensionContext: (extensionContext: ExtensionContext) => extensionContext is IssuePanelExtensionContext;
export interface CustomFieldContextConfigExtensionContext extends ExtensionContext {
type: 'contextConfig';
fieldId: string;
fieldType: string;
contextId: number;
configuration?: any;
schema?: {
[key: string]: any;
};
}
export declare const isCustomFieldContextConfigExtensionContext: (extensionContext: ExtensionContext) => extensionContext is CustomFieldContextConfigExtensionContext;
export interface CustomFieldExtensionContext extends ExtensionContext {
type: 'customField' | 'customFieldType';
fieldValue: CustomFieldValue;
fieldId: string;
fieldType: string;
isInline?: boolean;
}
export declare const isCustomFieldExtensionContext: (extensionContext: ExtensionContext) => extensionContext is CustomFieldExtensionContext;
export interface ContextMenuExtensionContext extends ExtensionContext {
type: 'contextMenu';
selectedText: string;
}
export interface ContentActionExtensionContext extends ExtensionContext {
type: 'contentAction';
}
export declare const isContextMenuExtensionContext: (extensionContext: ExtensionContext) => extensionContext is ContextMenuExtensionContext;
export declare const isContentActionExtensionContext: (extensionContext: ExtensionContext) => extensionContext is ContentActionExtensionContext;
export interface DashboardGadgetExtensionContext extends ExtensionContext {
type: 'dashboardGadget';
gadgetConfiguration: Record;
}
export declare const isDashboardGadgetExtensionContext: (extensionContext: ExtensionContext) => extensionContext is DashboardGadgetExtensionContext;
export declare enum CompassContextTypes {
AdminPage = "compass:adminPage",
ComponentPage = "compass:componentPage",
TeamPage = "compass:teamPage"
}
export interface CompassComponentPageExtensionContext extends ExtensionContext {
type: CompassContextTypes.ComponentPage;
componentId: string;
}
export interface CompassAdminPageExtensionContext extends ExtensionContext {
type: CompassContextTypes.AdminPage;
url: string;
}
export interface CompassTeamPageExtensionContext extends ExtensionContext {
type: CompassContextTypes.TeamPage;
teamId: string;
}
//# sourceMappingURL=forge.d.ts.map