import { type RaxPathResolutionResult } from "./raxPathResolver.js";
export type RaxStorageHomeLayout = {
    root: string;
    config: string;
    authRefs: string;
    providerProfiles: string;
    packageCache: string;
    toolDeps: string;
    trust: string;
    logs: string;
    runtimeSockets: string;
    templates: string;
};
export type RaxAgentWorkspaceLayout = {
    agentId: string;
    root: string;
    manifests: string;
    sessions: string;
    state: string;
    events: string;
    approvals: string;
    artifacts: string;
    cache: string;
    reports: string;
};
export type RaxStorageWorkspaceLayout = {
    root: string;
    config: string;
    manifests: string;
    sessions: string;
    sessionSqlitePath: string;
    state: string;
    events: string;
    approvals: string;
    artifacts: string;
    cache: string;
    sandbox: string;
    reports: string;
    agentsRoot: string;
    agent?: RaxAgentWorkspaceLayout;
};
export type RaxStorageLayoutRefs = {
    homeRef: "rax.home";
    workspaceRef: "rax.workspace";
    sessionStoreRef: "session.sqlite.workspace";
    artifactRootRef: "artifact.workspace";
    cacheRootRef: "cache.workspace";
    sandboxRootRef: "sandbox.workspace";
};
export type RaxStorageLayout = {
    kind: "praxis.raxStorageLayout";
    protocolVersion: "praxis.raxStorage.v1";
    home: RaxStorageHomeLayout;
    workspace: RaxStorageWorkspaceLayout;
    refs: RaxStorageLayoutRefs;
    publicSafe: true;
};
export type RaxStorageLayoutInput = {
    raxHomeRoot: string;
    raxWorkspaceRoot: string;
    agentId?: string;
};
export declare function createRaxStorageLayout(input: RaxStorageLayoutInput): RaxPathResolutionResult<RaxStorageLayout>;
