import { type Agent } from "@stigmer/protos/ai/stigmer/agentic/agent/v1/api_pb";
import { type AgentExecution } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
import { type ExecutionArtifact } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/artifact_pb";
import { ExecutionArtifactKind, ExecutionPhase } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
import { type AgentExecutionList } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/io_pb";
import { type AgentMessage, type ToolCall } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/message_pb";
import { type AgentInstance } from "@stigmer/protos/ai/stigmer/agentic/agentinstance/v1/api_pb";
import { type Environment } from "@stigmer/protos/ai/stigmer/agentic/environment/v1/api_pb";
import { type ApiKey } from "@stigmer/protos/ai/stigmer/iam/apikey/v1/api_pb";
import { type ApiKeys } from "@stigmer/protos/ai/stigmer/iam/apikey/v1/io_pb";
import { type McpServer } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/api_pb";
import { type Session } from "@stigmer/protos/ai/stigmer/agentic/session/v1/api_pb";
import { type SessionList } from "@stigmer/protos/ai/stigmer/agentic/session/v1/io_pb";
import { type Skill } from "@stigmer/protos/ai/stigmer/agentic/skill/v1/api_pb";
import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
import { type SearchResponse, type SearchResult } from "@stigmer/protos/ai/stigmer/search/v1/io_pb";
export interface SessionOverrides {
    readonly id?: string;
    readonly name?: string;
    readonly org?: string;
    readonly slug?: string;
    readonly subject?: string;
    readonly agentInstanceId?: string;
}
export interface AgentOverrides {
    readonly id?: string;
    readonly name?: string;
    readonly org?: string;
    readonly slug?: string;
    readonly description?: string;
    readonly instructions?: string;
}
export interface AgentExecutionOverrides {
    readonly id?: string;
    readonly sessionId?: string;
    readonly agentId?: string;
    readonly phase?: ExecutionPhase;
    readonly messages?: AgentMessage[];
    readonly artifacts?: ExecutionArtifact[];
}
export interface SkillOverrides {
    readonly id?: string;
    readonly name?: string;
    readonly org?: string;
    readonly slug?: string;
    readonly description?: string;
    readonly skillMd?: string;
}
export interface McpServerOverrides {
    readonly id?: string;
    readonly name?: string;
    readonly org?: string;
    readonly slug?: string;
    readonly description?: string;
}
export interface EnvironmentOverrides {
    readonly id?: string;
    readonly name?: string;
    readonly org?: string;
    readonly slug?: string;
}
export interface AgentInstanceOverrides {
    readonly id?: string;
    readonly name?: string;
    readonly org?: string;
    readonly slug?: string;
    readonly agentId?: string;
}
export interface ApiKeyOverrides {
    readonly id?: string;
    readonly name?: string;
    readonly slug?: string;
    readonly fingerprint?: string;
    readonly neverExpires?: boolean;
    readonly keyHash?: string;
}
export interface SearchResultOverrides {
    readonly id?: string;
    readonly name?: string;
    readonly org?: string;
    readonly slug?: string;
    readonly kind?: ApiResourceKind;
    readonly description?: string;
    readonly iconUrl?: string;
}
/**
 * Sample data factories for building demo fixtures.
 *
 * Each factory returns a realistic protobuf object with sensible defaults.
 * Pass an overrides object to customize the most commonly-needed fields.
 * For deeper customization, modify the returned object directly — protobuf
 * messages from `create()` are mutable plain objects.
 *
 * @example
 * ```ts
 * import { samples } from "@stigmer/react/test";
 *
 * const scenario = buildScenario(
 *   fixtures.session.get(() => samples.session({ subject: "My topic" })),
 *   fixtures.agent.getByReference(() => samples.agent({ name: "My Agent" })),
 * );
 * ```
 */
export declare const samples: {
    /**
     * A session resource with metadata and spec.
     * Default: `demo-session` in org `demo` with subject "Demo conversation".
     */
    readonly session: (o?: SessionOverrides) => Session;
    /**
     * An agent blueprint with metadata and spec.
     * Default: `Demo Agent` in org `demo`.
     */
    readonly agent: (o?: AgentOverrides) => Agent;
    /**
     * An agent execution with status, messages, and optional artifacts.
     * Default: completed execution with a short human/AI exchange.
     */
    readonly agentExecution: (o?: AgentExecutionOverrides) => AgentExecution;
    /**
     * A skill resource with SKILL.md content.
     * Default: `Demo Skill` in org `demo`.
     */
    readonly skill: (o?: SkillOverrides) => Skill;
    /**
     * An MCP server resource.
     * Default: `Demo MCP Server` in org `demo`.
     */
    readonly mcpServer: (o?: McpServerOverrides) => McpServer;
    /**
     * An environment resource.
     * Default: `demo-env` in org `demo`.
     */
    readonly environment: (o?: EnvironmentOverrides) => Environment;
    /**
     * An agent instance resource.
     * Default: `demo-instance` in org `demo` referencing the default demo agent.
     */
    readonly agentInstance: (o?: AgentInstanceOverrides) => AgentInstance;
    /**
     * An API key resource with metadata, spec, and status.
     * Default: `demo-api-key` with fingerprint `Ab1c2D` and no expiry.
     */
    readonly apiKey: (o?: ApiKeyOverrides) => ApiKey;
    /** A human (user) message. */
    readonly humanMessage: (content: string) => AgentMessage;
    /** An AI (assistant) message, optionally with tool calls. */
    readonly aiMessage: (content: string, toolCalls?: ToolCall[]) => AgentMessage;
    /** A completed tool call with a result. */
    readonly toolCall: (name: string, result: string) => ToolCall;
    /** A file artifact produced by an execution. */
    readonly artifact: (name: string, kind?: ExecutionArtifactKind) => ExecutionArtifact;
    /** A session list response. Defaults to one demo session. */
    readonly sessionList: (entries?: Session[]) => SessionList;
    /** An agent execution list response. Defaults to one demo execution. */
    readonly agentExecutionList: (entries?: AgentExecution[]) => AgentExecutionList;
    /**
     * A search response for list hooks (`useAgentList`, `useSkillList`, etc.).
     * Defaults to one search result matching the specified kind.
     */
    readonly searchResponse: (entries?: SearchResult[], totalCount?: number) => SearchResponse;
    /** An API key list response. Defaults to one demo API key. */
    readonly apiKeyList: (entries?: ApiKey[]) => ApiKeys;
    /** A single search result entry. */
    readonly searchResult: (o?: SearchResultOverrides) => SearchResult;
};
//# sourceMappingURL=samples.d.ts.map