/**
 * Permissions map keyed by role abbreviations.
 */
export type CardPermissionsMap = Record<string, string>;
/**
 * Permission codes available to cards.
 */
export declare enum CardPermission {
    READ = "r",
    WRITE = "w",
    FORWARD = "f",
    SHARE = "s",
    DOWNLOAD = "d"
}
/**
 * Convenience alias for permission enum.
 */
export declare const cardPermission: typeof CardPermission;
/**
 * Role metadata for the current user.
 */
export interface CardUserRole {
    key?: string;
    name?: string;
    description?: string | null;
    abbr?: string;
}
/**
 * Name fields for a user profile.
 */
export interface CardUserName {
    prefix?: string;
    given?: string;
    middle?: string;
    family?: string;
    suffix?: string;
}
/**
 * Photo metadata for a user.
 */
export interface CardUserPhoto {
    url?: string;
    [key: string]: any;
}
/**
 * Organization details for a user.
 */
export interface CardUserOrganization {
    company?: string;
    department?: string;
    position?: string;
    [key: string]: any;
}
/**
 * Cover photo metadata for a user profile.
 */
export interface CardUserCoverPhoto {
    url?: string;
    [key: string]: any;
}
/**
 * Cover properties for a user profile.
 */
export interface CardUserCover {
    photo?: CardUserCoverPhoto;
    color?: string;
    [key: string]: any;
}
/**
 * User profile payload delivered with onInit.
 */
export interface CardUser {
    name?: CardUserName;
    photo?: CardUserPhoto;
    organization?: CardUserOrganization;
    about_me?: string | null;
    cover?: CardUserCover;
    iid?: string;
    mci?: string;
    user_iuid?: string;
    iuid?: string;
    type?: string;
    label?: string;
    valid?: boolean;
    can_delete?: boolean;
    read_only?: boolean;
    share_url?: string;
    getFullName?: () => string;
    [key: string]: any;
}
/**
 * UI metadata passed with init data.
 */
export interface CardUiProps {
    theme?: "light" | "dark";
    [key: string]: any;
}
/**
 * Payload delivered to onInit.
 */
export interface CardInitData {
    api_token?: string;
    iuid?: string;
    user?: CardUser;
    perms_v2?: CardPermissionsMap | null;
    role?: CardUserRole | null;
    container?: {
        iuid?: string;
        [key: string]: any;
    };
    ui?: CardUiProps;
    [key: string]: any;
}
/**
 * Payload delivered to onInitError.
 */
export interface CardInitErrorPayload {
    error_code?: string | number;
    message?: string;
    [key: string]: any;
}
/**
 * Payload delivered when file data changes.
 */
export type CardFileChangePayload = Record<string, any>;
/**
 * Payload delivered when a refresh is requested.
 */
export type CardRefreshRequestPayload = Record<string, any>;
/**
 * Callback signature for cardFS updates.
 */
export type CardFsCallback<T = any> = (payload: T) => void;
export declare enum CardFsFileType {
    TEXT = "text",
    JSON = "json",
    BINARY = "binary"
}
/**
 * CardFS error codes.
 */
export declare enum CardFsErrorCode {
    NO_INTERNET = "NO_INTERNET",
    NO_PERMISSION = "NO_PERMISSION",
    NOT_FOUND = "NOT_FOUND",
    SERVER_ERROR = "SERVER_ERROR",
    TIMEOUT = "TIMEOUT",
    INVALID_REQUEST = "INVALID_REQUEST",
    UNKNOWN = "UNKNOWN"
}
/**
 * CardFS error payload.
 */
export interface CardFsErrorPayload {
    message: string;
    code?: CardFsErrorCode;
}
/**
 * CardFS read result payload.
 */
export interface CardFsReadResult {
    name?: string;
    iuid?: string | null;
    object?: any;
    data?: any;
    is_dirty?: boolean;
    is_stale: boolean;
    is_complete: boolean;
}
/**
 * CardFS write update payload.
 */
export interface CardFsWriteUpdatePayload {
    status: "uploading" | "completed" | "unknown";
    progress?: number;
    uploaded_bytes?: number;
    [key: string]: any;
}
/**
 * CardFS read update payload.
 */
export interface CardFsReadUpdatePayload {
    status: "downloading" | "completed" | "unknown";
    progress?: number;
    downloaded_bytes?: number;
    [key: string]: any;
}
/**
 * CardFS read handler interface.
 */
export interface CardFsReadHandler {
    next: CardFsCallback<CardFsReadResult>;
    error?: CardFsCallback<CardFsErrorPayload>;
}
/**
 * CardFS list handler interface.
 */
export interface CardFsListHandler {
    next: CardFsCallback<CardFsListResult>;
    error?: CardFsCallback<CardFsErrorPayload>;
}
/**
 * CardFS list result payload.
 */
export interface CardFsListResult {
    documents: any[];
    is_stale: boolean;
    is_complete: boolean;
    is_dirty: boolean;
    folder_name?: string;
    folder_iuid?: string;
    last_index?: number | null;
    last_page?: number | boolean | null;
    [key: string]: any;
}
/**
 * Event handler interface for card SDK lifecycle events.
 */
export interface CardEventHandler {
    onInit: (data: CardInitData) => void;
    onInitError?: (data: CardInitErrorPayload) => void;
    onError?: (data: {
        error_code: string | number;
        message: string;
        data: any;
    }) => void;
    onFileChange?: (data: CardFileChangePayload) => void;
    onRefreshRequest?: (data: CardRefreshRequestPayload) => void;
}
/**
 * Card key blob v1 payload shape.
 */
export interface CardKeyBlobV1 {
    v: number;
    seed: number;
    obf: number[];
}
/**
 * Supported card key blob payloads.
 */
export type CardKeyBlob = CardKeyBlobV1;
