import type { components } from '#api/termsOfService/termsOfService.contract';
import type { ServiceAgreementSignRequest } from '../../../../core/models/api/contracts';
import type { ExistingLegalEntity } from '../../../../core/models/api/legal-entity';
import type { TaskTypes } from '../../../../stores/globalStore/taskTypes';
import type { DropinProps } from '../../../EmbeddedDropins/OnboardingDropinComponent/DropinComposer/types';
export type ServiceAgreementType = components['schemas']['TermsOfServiceType'];
export interface ServiceAgreementAcceptanceInfo {
    acceptedBy: string;
    acceptedFor: string;
    createdAt: string;
    id: string;
    type: ServiceAgreementType;
}
export interface ServiceAgreementSchema {
    signer?: string;
    acceptServiceAgreement?: boolean;
}
export interface ServiceAgreementDropinProps extends DropinProps {
    legalEntityResponse: ExistingLegalEntity;
    taskType: typeof TaskTypes.SERVICE_AGREEMENT;
    serviceAgreementTypes: ServiceAgreementType[];
    serviceAgreementAcceptanceInfos: ServiceAgreementAcceptanceInfo[];
    handleAddSigner?(): void;
    handleSign(legalEntityId: string, termsOfServiceDocumentId: string, signedBy: ServiceAgreementSignRequest): Promise<void>;
    asEmbedded?: boolean;
    asModal?: boolean;
    handleCloseClick(): void;
    onComplete?(): void;
    showInitialBackButton?: boolean;
}
