#![doc = "Transport-independent service interface for local and remote calls."]
use async_trait::async_trait;
use spiral_contract::auth::AuthHeader;
use spiral_contract::call::CallError;
use crate::api::usage::objects::*;
#[async_trait]
pub trait UsageApi: Send + Sync + 'static {
async fn report_usage(
&self,
auth_header: AuthHeader,
request: ReportUsageRequest,
) -> Result<(), CallError<UsageError>>;
async fn report_usage_records(
&self,
auth_header: AuthHeader,
project_id: ProjectId,
request: ReportUsageRecordsRequest,
) -> Result<(), CallError<UsageError>>;
}