import { ApiPath, GuidValue, Identity, IExtendApiManifestWithConfiguration } from "@omnia/fx/models"; import { SidePanelContext } from "@omnia/fx/ux"; import { SignOffRequest } from "./SignOffRequest"; import { SignOffRequestProvider } from "./SignOffRequestProvider"; import { ISignOffRequestResource, SignOffRequestResource } from "./SignOffRequestResource"; import { SignOffRequestRollupViewRegistration } from "./SignOffRequestRollupViewSettings"; import { SignOffRequestType } from "./SignOffRequestType"; export type SignOffRequestInformationProviderId = GuidValue; export interface ISignOffRequestApi { registerSignOffRequestProvider: (...providers: SignOffRequestProvider[]) => void; getSignOffRequestProviders(): SignOffRequestProvider[]; } export interface ISignOffRequestRollupApi { viewRegistration: Promise; } export interface ISignOffRequestRollupViewRegistrationApi { registerViews: (providers: SignOffRequestRollupViewRegistration | SignOffRequestRollupViewRegistration[]) => void; } export interface ISignOffRequestRegistrationApi extends ISignOffRequestApi { } export interface ISignOffRequestInformationApi extends ISignOffRequestApi { loadDisplayProvider: (providerId: GuidValue, manifestId: GuidValue) => Promise; } export interface ISignOffRequestBannerApi { getSignOffRequestByResource: (resource: ISignOffRequestResource) => Promise; confirmResource: (resource: SignOffRequestResource) => Promise; onOpenPersistentSignOffRequestDetailDialog: (sidePanelContext: SidePanelContext, signOffRequestId: GuidValue, recipientId: Identity) => Promise; onClosePersistentSignOffRequestDetailDialog: (sidePanelContext: SidePanelContext) => Promise; } export interface ISignOffRequestTypesApi { getSignOffRequestTypes: () => Promise; } declare module "../WorkplaceApi" { interface IWorkplaceApi { signOffRequest: { registrations: Promise; providers: Promise; banner: Promise; rollup: ISignOffRequestRollupApi; types: Promise; }; } interface IWorkplaceExtendApiManifest { signOffRequest: { registrations: ApiPath; providers: IExtendApiManifestWithConfiguration; banner: ApiPath; rollup: ApiPath; types: ApiPath; }; } }