import type { StoreContext } from '../chatkit/store'; export declare const TaskAuthBindingKind: { readonly SOLID_CLIENT_CREDENTIALS: "solid-client-credentials"; }; export declare const TaskAuthBindingStatus: { readonly ACTIVE: "active"; readonly REVOKED: "revoked"; }; export declare const TASK_AUTH_CREDENTIAL_SERVICE = "task-auth"; export type TaskAuthBindingKindType = (typeof TaskAuthBindingKind)[keyof typeof TaskAuthBindingKind]; export type TaskAuthBindingStatusType = (typeof TaskAuthBindingStatus)[keyof typeof TaskAuthBindingStatus]; export interface TaskAuthBindingSnapshot { /** Credential resource id understood by the shared Credential model. */ id: string; kind: TaskAuthBindingKindType; webId: string; clientId: string; displayName?: string; status: TaskAuthBindingStatusType; createdAt: number; expiresAt?: number; } export interface CreateTaskAuthBindingInput { id?: string; webId?: string; clientId?: string; clientSecret?: string; displayName?: string; expiresAt?: number; } export interface TaskAuthCredentialRecord { id: string; service: string; status: string; apiKey?: string | null; label?: string | null; oauthExpiresAt?: string | Date | null; createdAt?: string | Date | null; } export interface TaskAuthBindingRepository { saveTaskAuthCredential(input: { id: string; apiKey: string; displayName?: string; expiresAt?: number; }, context: TContext): Promise; loadTaskAuthCredential(id: string, context: TContext): Promise; } export interface TaskAuthBindingServiceOptions { repository: TaskAuthBindingRepository; buildContext?: (binding: TaskAuthBindingSnapshot, clientSecret: string, context: TContext) => TContext; } export declare class TaskAuthBindingService { private readonly repository; private readonly buildContext; constructor(options: TaskAuthBindingServiceOptions); createBinding(input: CreateTaskAuthBindingInput, context: TContext): Promise; loadBinding(id: string, context: TContext): Promise; resolveRunContext(bindingId: string, context: TContext): Promise; private snapshotFromCredential; private solidAuthFromContext; private defaultBuildContext; } export declare function encodeClientCredentialsApiKey(clientId: string, clientSecret: string): string; export declare function parseClientCredentialsApiKey(value: unknown): { clientId: string; clientSecret: string; } | undefined;