/**
 * Pen state for un/packing to/from a shareable URL or LocalStorage. This
 * structure is not intended to be visible to or manually edited by users.
 */
type PenSave = {
    /** Pen title. Possibly empty. */
    name: string;
    /** The program source code. Possibly empty. */
    src: string;
    /**
     * Pen version recorded at save time. Used for unpacking old data if
     * structural changes have been made. Independent of package.json version.
     */
    version: 1;
};
export declare function PenSave(name: string, src: string): PenSave;
/** Retrieve pen from location or storage. */
export declare function loadPen(medium: Readonly<{
    hash: string;
}> | Readonly<Storage>): PenSave | undefined;
/** Save pen to storage and location. */
export declare function savePen(location: {
    hash: string;
} | undefined, storage: Readonly<Storage> | undefined, pen: Readonly<PenSave>): void;
export {};
